Есть Cisco 1751-V с VIC 2FXO, IOS: c1700-adventerprisek9-mz.124-15.T10.bin.Зарегистрировал экканут в сипнете и настроил его на циске. Пытаюсь сделать так, чтобы при звонке на этот эккаунт, циска включала бы IVR:
...
voice rtp send-recv
!
!
voice class codec 1
codec preference 1 g711ulaw
codec preference 2 g711alaw
codec preference 3 g729r8
codec preference 4 g729br8
...
application
package english
param index 1
param location http://.../tcl/prompts/en/
!
package russian http://.../tcl/ru_translate.tcl
param location http://.../tcl/prompts/ru/
param prefix ru
param index 2
param language ru
!
service Default
param callWaiting TRUE
!
service pinauth http://.../tcl/pinauth.tcl
...
voice-port 2/0
cptone RU
bearer-cap Speech
!
voice-port 2/1
cptone RU
bearer-cap Speech
!
dial-peer voice 6 pots
service pinauth out-bound
destination-pattern 0027409528
no digit-strip
port 2/1
forward-digits all
!
gateway
timer receive-rtp 1200
!
sip-ua
credentials username ... password ... realm etc.tario.ru
authentication username ... password 7 ... realm etc.tario.ru
nat symmetric check-media-src
registrar dns:sipnet.ru:5060 expires 60
sip-server dns:sipnet.ruПри таком конфиге звонок не проходит: на сиптелефоне висит "Connecting..." и тишина. Но стоит убрать "service pinauth out-bound" из конфига dial-peer, звонки тут же начинают проходить (конечно уже без IVRа).
Вот как выглядит call leg при отсутствии сервиса:
c1751#show call leg active summary
G<id> L<id> Elog A/O FAX T<sec> Codec type Peer Address IP R<ip>:<udp>
G1356 L 50C N ANS T12 g711alaw VOIP P.... 212.53.40.72:31794
G1356 L 50E N ORG T12 g711alaw TELE P0027409528А вот, при включении service out-bound:
c1751#show call leg active summary
G<id> L<id> Elog A/O FAX T<sec> Codec type Peer Address IP R<ip>:<udp>
G1371 L 537 N ANS T0 g711alaw VOIP P.... 212.53.40.71:26094Уже голову сломал. Подскажите, плз, куда копать?
>
>При таком конфиге звонок не проходит: на сиптелефоне висит "Connecting..." и тишина.А это, скорее всего не "тишина"...
Просто, "тетка", обычно записана в uLaw....
>Уже голову сломал. Подскажите, плз, куда копать?http://www.cisco.com/en/US/docs/voice_ip_comm/cucme/bacd/con...
Там и дебагинг скриптов есть...
>
>>
>>При таком конфиге звонок не проходит: на сиптелефоне висит "Connecting..." и тишина.
>
>А это, скорее всего не "тишина"...
>Просто, "тетка", обычно записана в uLaw....Гм.. Спасибо! Похоже на то..
А как обычно в такой ситуации поступают? Перекодируют в alaw или используют сип-фоны, которые ulaw умеют? Может можно как-то транскодинг включить?>Там и дебагинг скриптов есть...
Да, я уж дебажил все передебажил.. :(
Нашел сип-фон, который ulaw умеет. Вот только не помогло..
c1751#show call leg ac su
G<id> L<id> Elog A/O FAX T<sec> Codec type Peer Address IP R<ip>:<udp>
G13C6 L 6F9 N ANS T0 g711ulaw VOIP P.... 212.53.40.73:21012Есть еще мысли?
>
>Есть еще мысли?С 17xx не работал....
Дебаг скрипта в студию...
Может чего и выяснится...
А что за скрипт pinauth.tcl, кстати?
>Дебаг скрипта в студию...вывод "debug voip application all":
http://pastebin.com/AW23EJWTотдельно "debug voip application script" ничего не выдал
>А что за скрипт pinauth.tcl, кстати?
Да, стандартный debitcard.tcl. Переименовал просто.
>>Дебаг скрипта в студию...
>
>вывод "debug voip application all":
>http://pastebin.com/AW23EJWT
>
>отдельно "debug voip application script" ничего не выдал
>Ну, что не нравится....
Мысли....
>[оверквотинг удален]
> package russian http://.../tcl/ru_translate.tcl
> param location http://.../tcl/prompts/ru/
> param prefix ru
> param index 2
> param language ru
> !
> service Default
> param callWaiting TRUE
> !
> service pinauth http://.../tcl/pinauth.tclПараметры, вроде, вводятся внутри сервиса, а не в корне....
>service pinauth out-bound
А с какого перепуга он "out-bound"?
Без этой команды дает ввести?Вот настройка в "старой системе команд":
http://www.netup.ru/UTM5/articles.php?n=6
В "новой", как я и говорил - аппликация-сервис, под ним параметры...
>[оверквотинг удален]
>> param prefix ru
>> param index 2
>> param language ru
>> !
>> service Default
>> param callWaiting TRUE
>> !
>> service pinauth http://.../tcl/pinauth.tcl
>
>Параметры, вроде, вводятся внутри сервиса, а не в корне....Это языковые параметры, а не скрипта. Здесь точно все нормально (см. ниже).
>>service pinauth out-bound
>
>А с какого перепуга он "out-bound"?
>Без этой команды дает ввести?Так в этом-то и проблема! :) Без out-bound скрипт при звонке из сип-сети не вызывается и звонки проходят. pinauth вызывается только, если я выхожу с обычного телефона на порт 2/1 ВИКа.
>Вот настройка в "старой системе команд":
>http://www.netup.ru/UTM5/articles.php?n=6
>В "новой", как я и говорил - аппликация-сервис, под ним параметры...Как я понимаю, в этой (и многих других) статьях рассматривается случай, когда юзеры звонят на городские номера и должны ввести номер карты и пин, чтобы попасть в войп-сеть.
У меня обратная задача: для юзеров из войп-сети требовать пин-код для попадания "в город".
>Так в этом-то и проблема! :) Без out-bound скрипт при звонке из
>сип-сети не вызывается и звонки проходят. pinauth вызывается только, если
>я выхожу с обычного телефона на порт 2/1 ВИКа.
>У меня обратная задача: для юзеров из войп-сети требовать пин-код для попадания
>"в город".О как!!! ;)
Блин, нужно с этого и начинать...
Точнее "хотелку" сформулируйте...
Я правильно понимаю?
Звоним с сип-нета на кошку...
Кошка "вежливым голосом" просит ввести ПИН...
Вводим... Звоним...
Так?
>Это языковые параметры, а не скрипта. Здесь точно все нормально (см. ниже).Ни разу не уверен... ;(
Языковые параметры чего?
Ну, не знаю... Я, обычно, создаю рабочую конфигурацию (как по книжке)...А, дальше, начинаю экспериментировать...
А тут не знаю, с чего начать...
Обычно, скрипт вешается на inbond....
Может решение переработать..P.S.
Если я все правильно понимаю, я решал этот вопрос по другому....
>>У меня обратная задача: для юзеров из войп-сети требовать пин-код для попадания
>>"в город".
>
>О как!!! ;)
>Блин, нужно с этого и начинать...
>Точнее "хотелку" сформулируйте...Сорри, если неточно выразился. Наверное, действительно кривовата первоначальная формулировка получилась..
>Я правильно понимаю?
>Звоним с сип-нета на кошку...
>Кошка "вежливым голосом" просит ввести ПИН...
>Вводим... Звоним...
>Так?Exactly :)
>>Это языковые параметры, а не скрипта. Здесь точно все нормально (см. ниже).
>
>Ни разу не уверен... ;(
>Языковые параметры чего?Просто "языковые парметры": где дежат файлы, индекс и префикс языка.
Я так уверен потому как, если не использовать out-bound, то IVR работает.>Если я все правильно понимаю, я решал этот вопрос по другому....
Расскажите, плз.
В общем, удалось победить следующим образом:
application
...
!
service Default http://.../tcl/pinauth.tcl
...dial-peer voice 6 pots
destination-pattern 0027409528
no digit-strip
port 2/1
forward-digits all
...В таком виде, при звонке из сипнета, звонящий слышит приветствие IVR. Почему не работает с другим именем сервиса - не понятно..
отвечаю сам себе. правильный конфиг:...
dial-peer voice 6 pots
! здесь не должно быть команды service
destination-pattern 0027409528
no digit-strip
port 2/1
forward-digits all
...dial-peer voice 8 voip
!
! а вот здесь - должно
service pinauth
!
destination-pattern 0.........
voice-class codec 1
session protocol sipv2
session target sip-server
!
! но без следующей строки работать не будет
incoming called-number 0027409528
!
dtmf-relay sip-notify sip-kpml rtp-nte h245-signal h245-alphanumeric cisco-rtp
no vad
тем не менее, почему не работает c out-bound, я так и не смог разобраться :(
IVR-то заработал, только вот dtmf - не проходит. может кто-нить знает в чем м.б. дело?
вот дебаг в момент посылки dtmf:Mar 30 20:05:12: //1104/xxxxxxxxxxxx/CCAPI/cc_get_call_entry:
Call Entry Is Not Found
Mar 30 20:05:12: //1104/xxxxxxxxxxxx/CCAPI/cc_api_request_rt_packet_stats:
CALL_ERROR_INFORMATIONAL; Call Entry Is Not Found
Mar 30 20:05:14: //1103/D6E3AC458133/CCAPI/ccDisassociateStream:
Record Context=0x0, Stream Call Id=1104, Call Id=1103
Mar 30 20:05:14: //1103/D6E3AC458133/CCAPI/ccDisassociateStream:
Call Entry(Stream Status=1, Digit Enable=TRUE)
Mar 30 20:05:15: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Received:
INFO sip:0027409528@172.26.1.3:5060 SIP/2.0
Via: SIP/2.0/UDP 212.53.40.40:5060;branch=z9hG4bK630370-kmbdctj;cgp=etc.tario.ru;upaddr=...;rport
P-Asserted-Identity: <sip:...@sipnet.ru>
Max-Forwards: 10
From: "0027411833" <sip:...@sipnet.ru>;tag=C0C6092D-507062-FEAA0B2B_kmbdctj-8EAD
To: <sip:0027409528@sipnet.ru>;tag=14D989E0-19D7
Call-ID: 9573A071349F7780037F66A18A3742C4-9965105@h71n40.etc.tario.ru
Contact: <sip:signode-507062-FEAA0B2B_kmbdctj-8EAD@212.53.40.40>
CSeq: 2 INFO
User-Agent: CommuniGatePro-ximmsLeg/5.3.4
Content-Type: application/dtmf-relay
Content-Length: 26Signal= 2
Duration= 200Mar 30 20:05:15: //1104/xxxxxxxxxxxx/CCAPI/cc_api_call_digit_begin:
CALL_ERROR_INFORMATIONAL; Call Entry Is Not Found
Mar 30 20:05:15: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Sent:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 212.53.40.40:5060;branch=z9hG4bK630370-kmbdctj;cgp=etc.tario.ru;upaddr=...;rport
From: "0027411833" <sip:...@sipnet.ru>;tag=C0C6092D-507062-FEAA0B2B_kmbdctj-8EAD
To: <sip:0027409528@sipnet.ru>;tag=14D989E0-19D7
Date: Tue, 30 Mar 2010 16:05:15 GMT
Call-ID: 9573A071349F7780037F66A18A3742C4-9965105@h71n40.etc.tario.ru
Server: Cisco-SIPGateway/IOS-12.x
CSeq: 2 INFO
Contact: <sip:0027409528@172.26.1.3:5060>
Content-Length: 0Mar 30 20:05:15: //1104/xxxxxxxxxxxx/CCAPI/cc_api_call_digit_end:
CALL_ERROR_INFORMATIONAL; Call Entry Is Not Found
Mar 30 20:05:15: //1104/xxxxxxxxxxxx/CCAPI/cc_get_call_entry:
Call Entry Is Not Found
Mar 30 20:05:15: //1104/xxxxxxxxxxxx/CCAPI/cc_api_request_rt_packet_stats:
CALL_ERROR_INFORMATIONAL; Call Entry Is Not Found
Mar 30 20:05:16: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Received:Mar 30 20:05:16: //-1/xxxxxxxxxxxx/SIP/Error/HandleUdpSocketReads: SIP Message incomplete, trashed
Mar 30 20:05:19: //1104/xxxxxxxxxxxx/CCAPI/cc_get_call_entry:
Call Entry Is Not Found
Mar 30 20:05:19: //1104/xxxxxxxxxxxx/CCAPI/cc_api_request_rt_packet_stats:
CALL_ERROR_INFORMATIONAL; Call Entry Is Not Found
Смущает вот это:
CALL_ERROR_INFORMATIONAL; Call Entry Is Not FoundЧто бы это значило?
А если вместо
dtmf-relay sip-notify sip-kpml rtp-nte h245-signal h245-alphanumeric cisco-rtp
руками сказать dtmf-relay rtp-nte на диал-пирах...
Помнится, мы с каким то хлопцем уже разбирались с dtmf на SIP в этой конфе...
И, тоже, с IVR ;)
Там цыфры "двоились"....
>А если вместо
>dtmf-relay sip-notify sip-kpml rtp-nte h245-signal h245-alphanumeric cisco-rtp
>руками сказать dtmf-relay rtp-nte на диал-пирах...Не помогло:
dial-peer voice 6 pots
destination-pattern 0027409528
no digit-strip
direct-inward-dial
port 2/1
forward-digits all
!
dial-peer voice 8 voip
service pinauth
destination-pattern 0.........
voice-class codec 1
session protocol sipv2
session target sip-server
incoming called-number 0027409528
dtmf-relay rtp-nte
no vadВот дебаг rtp errors и rtp session в момент посылки dtmf:
Mar 31 14:37:55: <<<Rcv> Pt:124 Evt:4 Pkt:01 00 22
Mar 31 14:37:55: voip_rtp_recv_fs_input:Seq# mismatch seq#=0 src.max_seq=380 src.bad_seq=1
Mar 31 14:37:56: s=VoIP d=DSP payload 0x7C ssrc 0x61D0A306 sequence 0x0 timestamp 0x0
Mar 31 14:37:56: <<<Rcv> Pt:124 Evt:4 Pkt:01 00 22
Mar 31 14:37:56: voip_rtp_recv_fs_input:Seq# mismatch seq#=0 src.max_seq=417 src.bad_seq=1
Mar 31 14:37:56: voip_rtp_remove_xmit_info
Mar 31 14:37:56: s=VoIP d=DSP payload 0x7C ssrc 0x61D0A306 sequence 0x0 timestamp 0x0
Mar 31 14:37:56: <<<Rcv> Pt:124 Evt:4 Pkt:01 00 22
Mar 31 14:37:56: voip_rtp_recv_fs_input:Seq# mismatch seq#=0 src.max_seq=443 src.bad_seq=1
Mar 31 14:37:57: s=VoIP d=DSP payload 0x7C ssrc 0x61D0A306 sequence 0x0 timestamp 0x0
Mar 31 14:37:57: <<<Rcv> Pt:124 Evt:4 Pkt:01 00 22
Mar 31 14:37:57: voip_rtp_recv_fs_input:Seq# mismatch seq#=0 src.max_seq=471 src.bad_seq=1
Mar 31 14:37:58: s=VoIP d=DSP payload 0x7C ssrc 0x61D0A306 sequence 0x0 timestamp 0x0
Mar 31 14:37:58: <<<Rcv> Pt:124 Evt:4 Pkt:01 00 22
Mar 31 14:37:58: voip_rtp_recv_fs_input:Seq# mismatch seq#=0 src.max_seq=503 src.bad_seq=1
Mar 31 14:37:58: s=VoIP d=DSP payload 0x7C ssrc 0x61D0A306 sequence 0x0 timestamp 0x0
Mar 31 14:37:58: <<<Rcv> Pt:124 Evt:4 Pkt:01 00 22
Mar 31 14:37:58: voip_rtp_recv_fs_input:Seq# mismatch seq#=0 src.max_seq=537 src.bad_seq=1
Mar 31 14:37:59: s=VoIP d=DSP payload 0x7C ssrc 0x61D0A306 sequence 0x0 timestamp 0x0
Mar 31 14:37:59: <<<Rcv> Pt:124 Evt:4 Pkt:01 00 22
Mar 31 14:37:59: voip_rtp_recv_fs_input:Seq# mismatch seq#=0 src.max_seq=569 src.bad_seq=1
Mar 31 14:37:59: s=VoIP d=DSP payload 0x7C ssrc 0x61D0A306 sequence 0x0 timestamp 0x0
Mar 31 14:37:59: <<<Rcv> Pt:124 Evt:4 Pkt:01 00 22
Mar 31 14:37:59: voip_rtp_recv_fs_input:Seq# mismatch seq#=0 src.max_seq=599 src.bad_seq=1Если я правильно понимаю, то dtmf по rtp просто не приходит..
>
>Если я правильно понимаю, то dtmf по rtp просто не приходит..Похоже... Типа, пакеты сыплются...
Попробуйте, все таки, поиграться с настройками dtmf... Только не скопом, а по одному значению....И кодек на пире принудительно поставьте в какой-нибудь из 711
Попробуйте, временно, поставить у себя что-нибудь типа 3CX (3cx.ru) и вяжитесь с ней...
Щас не понятно, где искать проблему...
В линке сип-нета или в скрипте кошки...
>Попробуйте, временно, поставить у себя что-нибудь типа 3CX (3cx.ru) и вяжитесь с
>ней...
>Щас не понятно, где искать проблему...
>В линке сип-нета или в скрипте кошки...Судя по тому, что скрипт работает, если я его включаю на pots-диалпире, не думаю, что в нем дело.
Сипнет присылает DTMF в виде сообщений SIP INFO. В доке на ИОС написано, что этот вид dmtf включен по-дефолту. Я так думаю, что дело именно в том, что эти сообщения по каким-то причинам либо не доходят до скрипта, либо сам скрипт не умеет их обрабатывать. Но вот как это понять - неясно..
>В доке на ИОС
>написано, что этот вид dmtf включен по-дефолту.Это если вы ЯВНО не указываете...
А так, отрабатывает только тот (те) протоколы, которые прописываете..Повторюсь:
>>Попробуйте, временно, поставить у себя что-нибудь типа 3CX (3cx.ru) и вяжитесь с
>>ней...
>Повторюсь:
>>>Попробуйте, временно, поставить у себя что-нибудь типа 3CX (3cx.ru) и вяжитесь с
>>>ней...Уже начал было пробовать через Астериск, но тут обнаружил, что у коллег с другим софтфоном все работает :)
Оказалось следующее:
1. Софтфон от сипнета (sipphone mini) соединяется с моей циской с такими параметрами:
Apr 5 15:43:08: //2020/3D5FE17A82DD/SIP/Media/sipSPIUpdCallWithSdpInfo:
Preferred Codec : g711ulaw, bytes :160
Preferred DTMF relay : rtp-nte
Preferred NTE payload : 101
Early Media : No
Delayed Media : No
Bridge Done : No
New Media : No
DSP DNLD Reqd : NoApr 5 15:43:08: //2020/3D5FE17A82DD/SIP/Media/sipSPISetMediaSrcAddr: Media src addr for stream 1 = 172.26.1.3
Apr 5 15:43:08: //2020/3D5FE17A82DD/SIP/Media/sipSPISelectCodecVersion: g729br8 flavor of g729 codec will be used
Apr 5 15:43:08: //2020/3D5FE17A82DD/SIP/Media/sipSPIUpdCallWithSdpInfo:
Stream type : voice-only
Media line : 1
State : STREAM_ADDING (2)
Callid : -1
Negotiated Codec : g711alaw, bytes :160
Nego. Codec payload : 8 (tx), 8 (rx)
Negotiated DTMF relay : inband-voice
Negotiated NTE payload : 0 (tx), 0 (rx)
Negotiated CN payload : 0
Media Srce Addr/Port : 172.26.1.3:0
Media Dest Addr/Port : 212.53.40.72:21102Apr 5 15:43:08: //2020/3D5FE17A82DD/SIP/Media/sipSPISetMediaSrcAddr: Media src addr for stream 2 = 172.26.1.3
Apr 5 15:43:08: //2020/3D5FE17A82DD/SIP/Media/sipSPIUpdCallWithSdpInfo:
Stream type : voice+dtmf
Media line : 2
State : STREAM_DEAD (6)
Callid : -1
Negotiated Codec : No Codec , bytes :0
Nego. Codec payload : 255 (tx), 255 (rx)
Negotiated DTMF relay : inband-voice
Negotiated NTE payload : 0 (tx), 0 (rx)
Negotiated CN payload : 0
Media Srce Addr/Port : 172.26.1.3:0
Media Dest Addr/Port : 0.0.0.0:0DTMF не работает.
2. X-lite соединяется так:
Apr 5 15:44:13: //2024/6417640C82E1/SIP/Media/sipSPIUpdCallWithSdpInfo:
Preferred Codec : g711ulaw, bytes :160
Preferred DTMF relay : rtp-nte
Preferred NTE payload : 101
Early Media : No
Delayed Media : No
Bridge Done : No
New Media : No
DSP DNLD Reqd : NoApr 5 15:44:13: //2024/6417640C82E1/SIP/Media/sipSPISetMediaSrcAddr: Media src addr for stream 1 = 172.26.1.3
Apr 5 15:44:13: //2024/6417640C82E1/SIP/Media/sipSPIUpdCallWithSdpInfo:
Stream type : voice+dtmf
Media line : 1
State : STREAM_ADDING (2)
Callid : -1
Negotiated Codec : g711ulaw, bytes :160
Nego. Codec payload : 0 (tx), 0 (rx)
Negotiated DTMF relay : rtp-nte
Negotiated NTE payload : 101 (tx), 101 (rx)
Negotiated CN payload : 0
Media Srce Addr/Port : 172.26.1.3:0
Media Dest Addr/Port : 212.53.40.71:21974DTMF работает.
Кроме того, странность в том, что последняя версия X-lite (3.0) на моем компе выдает начало приветствия IVR, после чего звук пропадает (на других компах работает нормально). Какая-то его древняя версия от 2004 года работает и у меня.
>И кодек на пире принудительно поставьте в какой-нибудь из 711кодек и так 711-й выбирается, автоматом.