Добрый день, господа.Хочу прикрутить к роутеру 2851 голосовое меню.
Все по инструкциям:voice mlpp
access-digit 4
!
application
service voicemenu flash:ext.vxml
!
dial-peer voice 1000 voip
description IVR-Test
service voicemenu
destination-pattern 7299
session protocol sipv2
session target ipv4:1.1.1.1
codec g711ulawПри звонке на 7299 - занято.
ROUTER#sh dial-peer voice summary
dial-peer hunt 0
AD PRE PASS OUT
TAG TYPE MIN OPER PREFIX DEST-PATTERN FER THRU SESS-TARGET STAT PORT KEEPALIVE
1000 voip up up 299 0 syst ipv4:1.1.1.1debug voice application vxml
молчит дебаг.
ext.vxml на месте лежит, как и положено.Пир вроде тоже работает. Проверял через session target loopback:rtp
IOS: c2800nm-adventerprisek9-mz.151-4.M10
Голосовых плат нет.Подскажите, что еще подкрутить нужно?
Спасибо.
возможно, что не правильный кодек. Надо делать дебаги, тогда будет что-то видно
> возможно, что не правильный кодек. Надо делать дебаги, тогда будет что-то виднона 73 у меня
call application voice krus premier.tcl
> dial-peer voice 1000 voip
> description IVR-Test
> service voicemenu
> destination-pattern 7299
> session protocol sipv2
> session target ipv4:1.1.1.1
> codec g711ulawsession target убрать, destination-pattern заменить на "incoming called-number"
>> dial-peer voice 1000 voip
>> description IVR-Test
>> service voicemenu
>> destination-pattern 7299
>> session protocol sipv2
>> session target ipv4:1.1.1.1
>> codec g711ulaw
> session target убрать, destination-pattern заменить на "incoming called-number"Эффекта не дало.
Однако после экспериментов нашел, что работает в варианте:dial-peer voice 1000 voip
service voicemenu out-boundСкрипт запускается. Даже говорить начал. Трансфер работает.
Но вот такой распространенный на просторах инета уже нет.
После того, как проговариват - сброс.<?xml version="1.0"?>
<vxml version="2.0" base="flash:/ext.vxml">
<var name="number"/>
<form id="main">
<property name="timeout" value="3s"/>
<block> <prompt>
<audio src="flash:/vxml-ivr/newfirst_announcement.wav"/>
</prompt> </block>
<field name="num" type="number">
<grammar type="application/grammar+regex">[0-9][0-9][0-9][0-9]</grammar>
<filled>
<assign expr="'phone://' + num" name="number"/>
<goto next="#ext"/>
</filled>
</field>
</form>
<form id="ext">
<transfer connecttimeout="20s" name="mycall" destexpr="number" bridge="true"> </transfer>
</form>
</vxml>Проговаривает сообщение и сразу сброс.
ROUTER#debug voip application vxml
Default vxml debugging is onROUTER#
1w0d: //11891//VXML:/Open_CallHandoff:
1w0d: //11891//AFW_:/vapp_vxmldialog: Trusted=0, DNIS Map URI=, Code = {}
1w0d: //11891//AFW_:/vapp_vxmldialog: After DNIS Map URI=flash:ext.vxml, Code = {
<?xml version="1.0"?>
<vxml version="2.0" base="flash:/ext.vxml">
<var name="n
}
1w0d: //-1//AFW_:/AFW_VxmlModule_New:
1w0d: //-1//AFW_:HN25CE0F10:/vapp_event_handoff:
1w0d: //-1//AFW_:HN25CE0F10:/vapp_event_handoff: bag->noofAvParams=4
1w0d: ah_dump_av_params: avParamp = 4E7A7C78, nooAvParams=4
1w0d: avParams[0]: att_name = dnis, att_type = 3
1w0d: avParams[0]: att_string=7299
1w0d: avParams[1]: att_name = ani, att_type = 3
1w0d: avParams[1]: att_string=7280
1w0d: avParams[2]: att_name = ccFlags, att_type = 1
1w0d: avParams[2]: att_num=0
1w0d: avParams[3]: att_name = hoContainer, att_type = 4
1w0d: avParams[3]: att_obj=0, att_subtype=1
1w0d: //-1//VXML:/vxml_tree_lock:
vxmlp=4A7AF330 usage_cnt=0
1w0d: //0/B965B39F879F/VXML:/vxml_parse:1w0d: vxml_parse: XML_Parse success err=0
1w0d: //0/B965B39F879F/VXML:/vxml_session_delete:1w0d: vxml_session_delete:mem_mgr_mempool_free: mempool=NULL
1w0d: vxml_session_delete:mem_mgr_mempool_free: mempool=NULL
1w0d: //-1//VXML:/vxml_create:
enter url=flash:ext.vxml tree_handle=4A7AF330
return_handle_add=4C65E470
1w0d: //11891//AFW_:/vapp_checksessionstate:
1w0d: //11891//AFW_:/vapp_checkifdone: Object: 1, Leg: 1
1w0d: //11891//AFW_:/vapp_driver: evtID: 217 vapp record state: 0
1w0d: //11891//AFW_:/vapp_get_type_detail:
1w0d: //11891/B965B39F879F/VXML:/vxml_offramp_mailhdrs_get:1w0d: //11891//AFW_:/vapp_get_incoming_gtd_list:
1w0d: //11891/B965B39F879F/VXML:/vxml_start:
vxmlhandle=4DC8F8F0 vapphandle=4C6C1BC4 status=0 async_status=0
1w0d: //11891/B965B39F879F/VXML:/vxml_vxml_proc:
<vxml>
URI(abs):flash:ext.vxml
scheme=flash
path=ext.vxml
base=
URI(abs):flash:/ext.vxml
scheme=flash
path=/ext.vxml lang=none version=2.0
<var>: namep=number
1w0d: //11891/B965B39F879F/VXML:/vxml_expr_eval:
1w0d: expr=var number
1w0d: //11891/B965B39F879F/VXML:/vxml_jse_global_switch:
switch to scope(application)
1w0d: //11891/B965B39F879F/VXML:/vxml_form_proc:
1w0d: <form>: id=main scope=dialog
1w0d: //11891/B965B39F879F/VXML:/vxml_form_init:
current scope: dialog
vxml_counter_reset:
1w0d: //11891/B965B39F879F/VXML:/vxml_expr_eval:
1w0d: expr=var _in38
1w0d: //11891/B965B39F879F/VXML:/vxml_jse_global_switch:
switch to scope(dialog)
vxml_counter_reset:
1w0d: //11891/B965B39F879F/VXML:/vxml_expr_eval:
1w0d: expr=var num
1w0d: //11891/B965B39F879F/VXML:/vxml_formitem_select:
Status=VXML_STATUS_OK,
1w0d: //11891/B965B39F879F/VXML:/vxml_formitem_select:
AsyncStatus=VXML_STATUS_OK
1w0d: //11891/B965B39F879F/VXML:/vxml_block_proc:
1w0d: <block>:
1w0d: //11891/B965B39F879F/VXML:/vxml_item_attrs_proc:
name=_in38
1w0d: //11891/B965B39F879F/VXML:/vxml_prompt_proc:
<prompt>: timeout=3000 typeaheadflush=0 alternative=0
1w0d: //11891/B965B39F879F/VXML:/vxml_audio_proc:
<audio>:
URI(abs):flash:/vxml-ivr/newfirst_announcement.wav
scheme=flash
path=/vxml-ivr/newfirst_announcement.wav caching=fast fetchhint=invalid fetchtimeout=0 maxage=-1 maxstale=-1
1w0d: //11891/B965B39F879F/VXML:/vxml_vapp_media_play:
bargein=1 timeout=3000 typeaheadflush=0 vcr=0 rate=0 alternative=0 hotword=0 maxtime=0
1w0d: //11891/B965B39F879F/VXML:/vxml_vapp_media_play:
str=flash:/vxml-ivr/newfirst_announcement.wav cachable=1 timeout0 maxage=-1 maxstale=-1 codec=-1
1w0d: //11891//AFW_:/vapp_media_play:
1w0d: //11891//AFW_:/vapp_media_play: prompt=flash:/vxml-ivr/newfirst_announcement.wav:
1w0d: //11891/B965B39F879F/VXML:/vxml_leave_scope:
scope=anonymous
1w0d: //11891/B965B39F879F/VXML:/vxml_formitem_select:
loop cnt=0,
1w0d: //11891/B965B39F879F/VXML:/vxml_formitem_select:
Status=VXML_STATUS_OK,
1w0d: //11891/B965B39F879F/VXML:/vxml_formitem_select:
AsyncStatus=VXML_STATUS_OK
1w0d: //11891/B965B39F879F/VXML:/vxml_jse_global_switch:
switch to scope(dialog)
1w0d: //11891/B965B39F879F/VXML:/vxml_field_proc:
1w0d: <field>: type=number
1w0d: //11891/B965B39F879F/VXML:/vxml_item_attrs_proc:
name=num modal=aai prompt_counter=1
1w0d: //11891/B965B39F879F/VXML:/vxml_vapp_digit_collect:
termchar # minlength 0 maxlength 0 timeout 3000 interdigittimeout 10000 numPatterns=1hotword 0 abortKey
1w0d: //11891//AFW_:/vapp_digit_collect:
1w0d: //11891//AFW_:/vapp_digit_collect: numPatterns 1, minlength 0, maxlength 0, timeout 3000, interDigitTimeout 10000 hotword 0
1w0d: //11891/B965B39F879F/VXML:/vxml_formitem_select:
loop cnt=0,
1w0d: //11891/B965B39F879F/VXML:/vxml_load_immediate_done:
sidp->status=300000000
1w0d: //11891//AFW_:/vapp_checksessionstate:
1w0d: //11891//AFW_:/vapp_checkifdone: Object: 2, Leg: 1
1w0d: //11891//AFW_:/vapp_driver: evtID: 228 vapp record state: 0
1w0d: //11891//AFW_:/vapp_do_bargein: Input=2
1w0d: //11891//AFW_:/vapp_digit_collection_done:
1w0d: //11891//AFW_:/vapp_digit_collection_done: digits [], status [2], pattern []
1w0d: //11891/B965B39F879F/VXML:/vxml_digit_collection_done:
vxmlp 4A7AF330 status 2 async_status 300000000
1w0d: //11891/B965B39F879F/VXML:/vxml_digit_collection_done:
digits ()
1w0d: //11891/B965B39F879F/VXML:/vxml_digit_collection_done:
name ()
1w0d: //11891/B965B39F879F/VXML:/vxml_bind_lastprompt:1w0d: //11891//AFW_:/vapp_checksessionstate:
1w0d: //11891//AFW_:/vapp_checkifdone: Object: 1, Leg: 1
1w0d: //11891//AFW_:/vapp_driver: evtID: 178 vapp record state: 0
1w0d: //11891//AFW_:/vapp_play_done: evID=178 reason=17, protocol=0, status_code=0, dur=5712, rate=0
1w0d: //11891/B965B39F879F/VXML:/vxml_media_done:
status 0 async_status 100040000 duration=5712 rate=0
1w0d: //11891/B965B39F879F/VXML:/vxml_save_lastprompt_info:1w0d: //11891/B965B39F879F/VXML:/vxml_save_lastprompt_info:
1w0d: //11891//AFW_:/vapp_notify_play_done:
1w0d: //11891/B965B39F879F/VXML:/vxml_vapp_vcr_control_disable:1w0d: //11891/B965B39F879F/VXML:/vxml_bind_lastprompt:
1w0d: //11891/B965B39F879F/VXML:/vxml_digit_collect_process:
vxmlp 4A7AF330 status 2 async_status 40000
1w0d: //11891//AFW_:/vapp_session_exit_event_name: Exit Event vxml.session.error
1w0d: //11891/B965B39F879F/VXML:/vxml_vapp_terminate:
vapp_status=2 ref_count 0
1w0d: //11891/B965B39F879F/VXML:/vxml_vapp_terminate:
CALL_ERROR; flash:ext.vxmlvxml session terminating with code=ERROR
vapp status=VAPP_FAIL vxml async status=VXML_ERROR_VAPP
1w0d: //11891//AFW_:/vapp_terminate:
1w0d: //11891//AFW_:/AFW_M_VxmlModule_Terminate:
1w0d: //11891//AFW_:/vapp_checksessionstate:
1w0d: //11891//AFW_:/vapp_checkifdone: Object: 1, Leg: 1
1w0d: //11891/B965B39F879F/VXML:/vxml_tree_delete:
vxmlp=4A7AF330, usage_cnt=1 url=flash:ext.vxml
1w0d: vxml_tree_delete:mem_mgr_mempool_free: mem_refcnt(4BAC9F40)=0 - mempool cleanup
1w0d: //11891/B965B39F879F/VXML:/vxml_session_delete:1w0d: vxml_session_delete:mem_mgr_mempool_free: mem_refcnt(4E71E274)=0 - mempool cleanup
1w0d: vxml_session_delete:mem_mgr_mempool_free: mempool=NULL
1w0d: //11891//AFW_:/vapp_checksessionstate:
1w0d: //11891//AFW_:/vapp_checkifdone: Object: 0, Leg: 0
1w0d: //11891//VXML:/Dialog_VxmlDialogDone: handoff return string return-status=fail:
1w0d: //-1//AFW_:HN25CE0F10:/AFW_M_VxmlModule_Free:
1w0d: MOD[VxmlModule_4C6C1BC4_0_634261264] ( )
debug ccsip messagesсмотреть, договорились ли о DTMF
> debug ccsip messages
> смотреть, договорились ли о DTMFЗвонок в рамках одной железки:
1w2d: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Received:
INVITE sip:7299@192.168.1.16 SIP/2.0
Via: SIP/2.0/UDP 192.168.10.218:5360;branch=z9hG4bK-b9ab1e50
From: 7280 <sip:7280@192.168.1.16>;tag=b91f5c893eadfce8o0
To: <sip:7299@192.168.1.16>
Remote-Party-ID: 7280 <sip:7280@192.168.1.16>;screen=yes;party=calling
Call-ID: ef9af9dd-f2ecdfa4@192.168.0.4
CSeq: 101 INVITE
Max-Forwards: 70
Contact: 7280 <sip:7280@192.168.10.218:5360>
Expires: 240
User-Agent: Linksys/SPA8000-5.1.10
Content-Length: 452
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER
Supported: x-sipura, replaces
Content-Type: application/sdpv=0
o=- 139208030 139208030 IN IP4 192.168.10.218
s=-
c=IN IP4 192.168.10.218
t=0 0
m=audio 19458 RTP/AVP 0 2 4 8 18 96 97 98 100 101
a=rtpmap:0 PCMU/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:4 G723/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729a/8000
a=rtpmap:96 G726-40/8000
a=rtpmap:97 G726-24/8000
a=rtpmap:98 G726-16/8000
a=rtpmap:100 NSE/8000
a=fmtp:100 192-193
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:30
a=sendrecv
1w2d: //14380/62284D51890F/SIP/Msg/ccsipDisplayMsg:
Sent:
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.10.218:5360;branch=z9hG4bK-b9ab1e50
From: 7280 <sip:7280@192.168.1.16>;tag=b91f5c893eadfce8o0
To: <sip:7299@192.168.1.16>
Date: Fri, 15 Jan 2016 09:01:22 GMT
Call-ID: ef9af9dd-f2ecdfa4@192.168.0.4
CSeq: 101 INVITE
Allow-Events: telephone-event
Server: Cisco-SIPGateway/IOS-12.x
Content-Length: 01w2d: //14380/62284D51890F/SIP/Msg/ccsipDisplayMsg:
Sent:
SIP/2.0 500 Internal Server Error
Via: SIP/2.0/UDP 192.168.10.218:5360;branch=z9hG4bK-b9ab1e50
From: 7280 <sip:7280@192.168.1.16>;tag=b91f5c893eadfce8o0
To: <sip:7299@192.168.1.16>;tag=2F09BB1C-197A
Date: Fri, 15 Jan 2016 09:01:22 GMT
Call-ID: ef9af9dd-f2ecdfa4@192.168.0.4
CSeq: 101 INVITE
Allow-Events: telephone-event
Server: Cisco-SIPGateway/IOS-12.x
Reason: Q.850;cause=16
Content-Length: 01w2d: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Received:
ACK sip:7299@192.168.1.16 SIP/2.0
Via: SIP/2.0/UDP 192.168.10.218:5360;branch=z9hG4bK-b9ab1e50
From: 7280 <sip:7280@192.168.1.16>;tag=b91f5c893eadfce8o0
To: <sip:7299@192.168.1.16>;tag=2F09BB1C-197A
Call-ID: ef9af9dd-f2ecdfa4@192.168.0.4
CSeq: 101 ACK
Max-Forwards: 70
Contact: 7280 <sip:7280@192.168.10.218:5360>
User-Agent: Linksys/SPA8000-5.1.10
Content-Length: 0Никакого упоминания о DTMF не увидел.
> Голосовых плат нет.Погоди, PVDM стоят или нет?
# show inventory
>> Голосовых плат нет.
> Погоди, PVDM стоят или нет?
> # show inventoryНе вижу.
NAME: "2851 chassis", DESCR: "2851 chassis"
PID: CISCO2851 , VID: V08 , SN: FTX1529AK3HNAME: "WAN Interface Card - HWIC CSU/DSU on Slot 0 SubSlot 0", DESCR: "WAN Interface Card - HWIC CSU/DSU"
PID: HWIC-1DSU-T1 , VID: V02 , SN: FOC151644Z2Тоесть без PVDM никак?
> Тоесть без PVDM никак?Нечему DTMF сигналы декодировать.
>> Тоесть без PVDM никак?
> Нечему DTMF сигналы декодировать.Пока эксперементировал, снова перестало разговаривать.
Установка PVDM2 успехов не принесло.
>>> Тоесть без PVDM никак?
>> Нечему DTMF сигналы декодировать.
> Пока эксперементировал, снова перестало разговаривать.
> Установка PVDM2 успехов не принесло.В dial-peer добавил строку
incoming called-number 7299
и по номеру 7299 начало отвечать и принимать DTMF.
>>>> Тоесть без PVDM никак?
>>> Нечему DTMF сигналы декодировать.
>> Пока эксперементировал, снова перестало разговаривать.
>> Установка PVDM2 успехов не принесло.
> В dial-peer добавил строку
> incoming called-number 7299
> и по номеру 7299 начало отвечать и принимать DTMF.11 января ;)