Не передается в asterisk (trixbox) CallerID с DVG-7022s и упорно отдает номер екстеншенна под которым зарегистрирован порт.
Ситуация такая: делаю входящий звонок на линию. Мониторю DVG-7022s программой slmon и вижу, что железка CallerID определяет:
Fxo Get Dtmf Callerid [”номер с которого звоню”], Len=9
CallerID=”номер с которого звоню”
Дальше железка в соответствии с прописанным Hot Line No. перезванивает на внутренний номер и звонок проходит нормально. Но не в полных логах asterisk, не в статистике CDR callerid не передается не в каком виде. Вместо него везде номер порта.
Пробовал по очереди менять настройки на железке. Добивался лишь того, того что CallerID переставал определяться вообще. Возвращал в рабочее состояние и игрался с настройками asterisk: создавал отдельный контекст для номера порта, назначал уже существующее from-pstn и from-internal.
Ничего не помогает, такое чувство, что железка просто не отдает его, хотя определяет правильно.
Пробовал на разных рабочих железках: DVG-7022s - номер прошивки 1.02.38.28 DVG-6008s - номер прошивки 1.02.38.43
Добавлю что при контексте:
[from-dvg]
exten => _X.,1,Set(name=${CALLERID(name)})
exten => _x.,n,Set(CALLERID(name)=${CALLERID(num)})
exten => _x.,n,Set(CALLERID(num)=${name})
exten => _x.,n,Goto(from-trunk,${EXTEN},1)
в логах астера:
name=device
CALLERID(name)=63030
CALLERID(num)=device
При контексте:
[from-dvg]
exten => _X.,1,NoOp(CALLERID=${CALLERID(all)})
exten => _x.,n,NoOp(EXTEN=${EXTEN})
exten => _x.,n,goto(from-pstn,1144,1)
CALLERID="device"
в логах астера:
CALLERID="device" <63030>
Оба контекста рабочих. Звонки проходят нормально. Но в логи не попадает CALLERID.
Корректно настроить не удалось. Вопрос решил вырезанием номера из SIP-заголовка и ручным присваиванием вырезанного значения:
[from-dvg]
exten => _X!,1,Set(TESTAT=${CUT(CUT(SIP_HEADER(From),\:,2),@,1)})
exten => _x!,n,Set(CALLERID(name)=${TESTAT})
exten => _x!,n,Set(CALLERID(num)=${TESTAT})
exten => _x!,n,Goto(from-pstn,${EXTEN},1)
попробуй выцепить CallerID из SIP заголовка, как то так
exten => s,1,NoOp(================ Incoming call from ${SIP_HEADER(FROM)} to: ${SIP_HEADER(TO}:5:6 )
" упорно отдает номер екстеншенна под которым зарегистрирован порт..." а вы чего хотели, когда регистрировали шлюз, как обычный телефон. Делайте нормальный транк с авторизацией по адресу, и все будет проходить сквозняком..
Параметр Telephony settings --> Ring count before FXO pick up чему равен? Он должен быть больше нуля.
Решил пропониторить ngrep:
U IP-сервер:5060 -> IP-железки:5060
SIP/2.0 200 OK..Via: SIP/2.0/UDP IP-железки:5060;branch=z9hG4bK628d9ea112a44f25;received=IP-железки..From: <sip:63
030@IP-сервер>;tag=31443aaa-685998..To: <sip:63030@IP-сервер>;tag=as58f00ec9..Call-ID: D1B9-11F9-46685998F1344C5
BB2CE-006@SipHost..CSeq: 13 REGISTER..User-Agent: Asterisk PBX 1.6.0.22-samy-r60..Allow: INVITE, ACK, CANCEL, OPTIONS, B
YE, REFER, SUBSCRIBE, NOTIFY, INFO..Supported: replaces, timer..Expires: 600..Contact: <sip:63030@IP-железки:5060>;ex
pires=600..Date: Thu, 18 Aug 2011 07:42:10 GMT..Content-Length: 0....
#
U IP-железки:5060 -> IP-сервер:5060
INVITE sip:1144@IP-сервер:5060 SIP/2.0..Allow:INVITE,ACK,OPTIONS,BYE,CANCEL,INFO,PRACK,REFER,SUBSCRIBE,NOTIFY,UPDATE
..Via:SIP/2.0/UDP IP-железки:5060;branch=z9hG4bKb5f11457f38b0a7f..From: <sip:Номер с которого звоню@IP-сервер;user=phone>;tag=8
765eafe-686004..To: <sip:1144@IP-сервер:5060>..Call-ID:D1B9-11F9-466860046154EE8EA1AA-007@SipHost..CSeq:14 INVITE..C
ontact:<sip:63030@IP-железки:5060>..Expires:30..Max-Forwards:70..Supported:replaces..User-Agent:dlink 12-38-28928749-
0.9.5.1.1140-IAD20..Content-Type:application/sdp..Content-Length:282....v=0..o=63030 1793199480 1793199480 IN IP4 IP-железки..s=Session SDP..c=IN IP4 IP-железки..t=0 0..m=audio 10004 RTP/AVP 18 4 2 0 8..a=rtpmap:18 G729/8000/1..a=fmtp
:18 annexb=no..a=rtpmap:4 G723/8000/1..a=rtpmap:2 G726-32/8000/1..a=rtpmap:0 PCMU/8000/1..a=rtpmap:8 PCMA/8000/1..
Железка отдает правильно все. В поле from. Плохо знаю астер. Теперь прийдеться разбираться почему нет записи в логах asterisk и в статистике CDR
Задан: 2011-08-17 17:43:12 +0400
Просмотрен: 1,713 раз
Обновлен: Aug 18 '11
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.