Неправильный CDR dst на AMI Asterisk, когда вызов занят

Я пытаюсь настроить запись CDR с помощью MySQL. Когда на вызов отвечают или на него не отвечают, он записывает в поле dst правильное значение, которое является номером вызываемого и исходящего телефона в поле dcontext.

Но при отклонении звонка или выключенном телефоне в поле dst пишется "s", а в поле dcontext - "transmit_voice". Мы хотим, чтобы звездочка в этой ситуации писала еще и номер телефона.

Когда на вызов ответили или не ответили, переходит в этот контекст:

[outgoing]

exten =>_X., 1,Answer()
same=>n, Set(j=0) 
same=>n, Set(message=message)
same => n,While($[${j} < ${I}])
same => n,Playback(${${message}${j}})
same => n,Set(j=$[${j} + 1])
same => n,EndWhile
same=>n,Set(CDR(target)=${EXTEN})
same => n,Hangup()

Когда вызов отклонен или телефон выключен, переходит к этому контексту:

[transmit_voice]
exten => _X!,1,NoOp


#include extensions_custom.conf

Вот фрагмент PHP:

fputs($this->socket,"Action: originate\r\n");
fputs($this->socket,"Channel: SIP/".$this->strTrunkName."/".$phone."\r\n");
fputs($this->socket,"Variable: canal= SIP/".$this->strTrunkName."/".$phone."\r\n");
fputs($this->socket,"Timeout: ".$this->strWaitTime."\r\n");
fputs($this->socket,"Callerid: ".$this->strCallerId."\r\n");
fputs($this->socket,"Exten: ".$phone."\r\n");
fputs($this->socket,"Context: outgoing\r\n");
while ($audio < count($this->arrAudioPath))
{
  fputs($this->socket,"Variable: message".$audio."=".$this->arrAudioPath[$audio]."\r\n");
  $audio++;
}  
fputs($this->socket,"Variable: I=".$audio."\r\n");
fputs($this->socket,"Async: yes\r\n");
fputs($this->socket,"Priority: 1\r\n\r\n");

person SergiDP    schedule 22.10.2014    source источник


Ответы (1)


Это ожидаемое поведение. Когда вызов занят, нет перехода на летнее время.

Если вы хотите это изменить, звоните через Local/channel, а не через sip.

person arheops    schedule 22.10.2014