Страница 1 из 2
					
				Кто положил трубку?
				Добавлено: 21 июн 2011, 23:08
				 Aven
				Надо определить кто положил трубку. 
 Вроде простая вещь, а найти как узнать не могу. 
 Нашел CHANNEL(hangupsource) - но он работает только для SIP устройств. 
 А как быть с DAHDI устройствами?
			 
			
					
				Re: Кто положил трубку?
				Добавлено: 21 июн 2011, 23:23
				 ded
				core set  debug channel all?
			 
			
					
				Re: Кто положил трубку?
				Добавлено: 21 июн 2011, 23:37
				 Aven
				Мне это нужно знать в h экстеншене, что бы записать в CDR
			 
			
					
				Re: Кто положил трубку?
				Добавлено: 22 июн 2011, 00:02
				 ded
				Судя по 
http://www.mail-archive.com/svn-commits ... 45416.html это присутствует во всех каналах начиная с 1.6.3 и 1.8
 
			 
			
					
				Re: Кто положил трубку?
				Добавлено: 22 июн 2011, 02:03
				 Aven
				это присутствует во всех каналах начиная с 1.6.3 и 1.8
это - это что?
А 1.6.3 откуда появилось? 1.6.2.18 последняя...
 
			 
			
					
				Re: Кто положил трубку?
				Добавлено: 22 июн 2011, 02:13
				 ded
				Это - hangupsource в канале. 
1.6.3 - именно так написано в комментариях кода (по ссылке). Точнее - было так написано и заменено на 1.8
Код: Выделить всё
@@ -1283,7 +1283,7 @@
  * \param chan channel to set the field on
  * \param source a string describing the source of the hangup for this channel
  *
- * \since 1.6.3
+ * \since 1.8
  *
  * Hangupsource is generally the channel name that caused the bridge to be
  * hung up, but it can also be other things such as "dialplan/agi"
 
			 
			
					
				Re: Кто положил трубку?
				Добавлено: 22 июн 2011, 03:12
				 Aven
				Код: Выделить всё
exten => h,1,NoOp(hangupsource = ${CHANNEL(hangupsource)})
Фактически работает только для SIP... 
[Jun 21 23:05:08]     -- Executing [h@office:1] NoOp("SIP/102-0000002b", "hangupsource = SIP/102-0000002b") in new stack
И не работает для Dahdi:
[Jun 21 23:01:10]     -- Executing [h@office:1] NoOp("SIP/102-00000023", "hangupsource = ") in new stack
 
			 
			
					
				Re: Кто положил трубку?
				Добавлено: 22 июн 2011, 11:54
				 Aven
				Сценарий 1: 
звонок FXO -> FXS завершает FXS
Dial опция F не выполняется
CHANNEL(hangupsource) = 
CHANNEL(checkhangup) = 0
Сценарий 2: 
звонок FXO -> FXS завершает FXO
Dial опция F не выполняется
CHANNEL(hangupsource) = 
CHANNEL(checkhangup) = 0
Код: Выделить всё
[Jun 22 11:47:02]     -- Starting simple switch on 'DAHDI/1-1'
[Jun 22 11:47:03]     -- Executing [s@trunc-from_dahdi:1] NoOp("DAHDI/1-1", "Incomming call to PSTN from [XXX]") in new stack
[Jun 22 11:47:03]     -- Executing [s@trunc-from_dahdi:2] Set("DAHDI/1-1", "CALLERID(all)=PSTN <XXX>") in new stack
[Jun 22 11:47:03]     -- Executing [s@trunc-from_dahdi:3] Dial("DAHDI/1-1", "SIP/101&DAHDI/2,,F") in new stack
[Jun 22 11:47:03]   == Using SIP RTP CoS mark 5
[Jun 22 11:47:03]     -- Called 101
[Jun 22 11:47:03]     -- Called 2
[Jun 22 11:47:03]     -- DAHDI/2-1 is ringing
[Jun 22 11:47:03]     -- SIP/101-00000038 is ringing
[Jun 22 11:47:04]     -- DAHDI/2-1 is ringing
[Jun 22 11:47:07]     -- DAHDI/2-1 answered DAHDI/1-1
[Jun 22 11:47:10]     -- Executing [h@trunc-from_dahdi:1] NoOp("DAHDI/1-1", "hangupsource = ") in new stack
[Jun 22 11:47:10]     -- Executing [h@trunc-from_dahdi:2] NoOp("DAHDI/1-1", "checkhangup = 0") in new stack
[Jun 22 11:47:10]     -- Hanging up on 'DAHDI/2-1'
[Jun 22 11:47:10]     -- Hungup 'DAHDI/2-1'
[Jun 22 11:47:10]   == Spawn extension (trunc-from_dahdi, s, 3) exited non-zero on 'DAHDI/1-1'
[Jun 22 11:47:10]     -- Hanging up on 'DAHDI/1-1'
[Jun 22 11:47:10]     -- Hungup 'DAHDI/1-1'
 
			 
			
					
				Re: Кто положил трубку?
				Добавлено: 22 июн 2011, 12:19
				 ded
				Если отслеживается в дебаге 
-- Hanging up on 'DAHDI/2-1'
-- Hungup 'DAHDI/2-1'
то можно поймать это програмно в ${CUSTOM_переменную}, и нужно подумать - как.
IMHO - аналоговые линии, от слова анал, должны  сгореть в топке локалхоста. Геморрой с ними не стоит никаких мнимых бенефитов типа цена_за_порт.
			 
			
					
				Re: Кто положил трубку?
				Добавлено: 22 июн 2011, 12:35
				 Aven
				В дебаге как раз видно, что при завершении звонка со стороны FXO не происходит закрытие канала, он остается в рабочем состоянии и аппонент например слышит короткие гудки. 
Можно ли сделать, чтоб сразу завершался?
А насче ОНАЛоговых линий я и сам все понимаю, но при их цене в разы ниже стоимости IP телефонов они вне конкуренции для рядовых сотрудников. Именно использования их позволяет составлять конкуренцию традиционным телефонным вендорам, если не требуется экзотических сервисов от телефонии, а это 90% инсталяций!
С FXO все еще сложнее... линии есть и от них зачастую никуда не деться. Даже если и есть возможность взять по IP линию, это вовсе не означает возможность сохранить имеющиеся телефонные номера. В европе и Default-сити с этим все полегче, но за МКАДом тоже есть жизнь и тоже надо как-то крутиться...
Кстати к работе FXS притензий вообще нет. Тоновый набор быстрый, DTMF бегают нормально, занятость каналов определяется нормально, CallerId передается, включая имя и все это за 892р порт, что еще нужно рядовым сотрудникам?