Добрый день, коллеги!Начал осваивать asterisk, вещь конечно очень интересная, но не менее замороченная :)
Создал я dialplan, создал экстеншны.
Все вроде работает, но выявился затык с одной циской. Не проходит звонок, хоть убейся. Ни по SIP, ни по H323 (в астериске использую chan_ooh323.so). IOS залил самый свежий из MD, который смог достать: c2800nm-adventerprisek9_ivs-mz.124-24.T5
До него стоял ED c2800nm-adventerprisek9-mz.124-25a было то же самое, из чего я сделал вывод, что дело не в IOS'е.
При этом все работает на других цисках с идентичными настройками.
Конфиг циски:
voice service voip
allow-connections h323 to h323
allow-connections h323 to sip
allow-connections sip to h323
allow-connections sip to sip
supplementary-service h450.12
redirect ip2ip
fax protocol t38 ls-redundancy 5 hs-redundancy 2 fallback pass-through g711alaw
h323
no call service stop
call start slow
modem passthrough nse codec g711ulaw
sip
bind control source-interface FastEthernet0/0
bind media source-interface FastEthernet0/0
registrar server expires max 3600 min 3600
no call service stop
!
voice class codec 1
codec preference 1 g729br8 bytes 40
codec preference 2 g729r8 bytes 80
codec preference 3 g723r63 bytes 48
codec preference 4 g723r53 bytes 40
codec preference 5 g728
codec preference 6 g711alaw
codec preference 7 g711ulaw
!
voice class h323 1
h225 connect-passthru
call start fast
!
dial-peer voice 8045 pots
voice cut-through alert
destination-pattern 8045T
direct-inward-dial
port 0/0/0:15
supported-language ru
!
voice-port 0/0/0:15
cptone RU
bearer-cap SpeechКонфиги asterisk:
sip.conf[cisco]
type=peer
host=10.45.15.205
disallow=all
allow=alaw
allow=g729
allow=g723
context=incoming_exchange[cisco_1]
type=peer
host=10.45.255.241
disallow=all
allow=alaw
allow=g729
allow=g723
context=incoming_exchangeooh323.conf
[cisco_h323]
type=peer
host=10.45.15.205
context=incoming_exchange
dtmfmode=inband
disallow=all
allow=alaw
h245Tunneling=yes
fastStart=no[cisco_1_h323]
type=peer
host=10.45.255.241
context=incoming_exchange
dtmfmode=inband
disallow=all
allow=alaw
h245Tunneling=yes
fastStart=yes
extension.conf
context outgoing_cc
{
_78XXXXX! => &CC_SIP_outgoing_call(${EXTEN:1},cisco,,);
_731XXX => &CC_H323_outgoing_call(${EXTEN:1},cisco_1_h323,,);
}Так вот, звонок не проходит по первой строчке (ни по CC_SIP_outgoing_call, ни по CC_H323_outgoing_call) и проходит по второй (и по SIP и по H323)
Вот результирующий дебаг с циски при звонке по SIP:
Sent:
SIP/2.0 488 Not Acceptable Media
Via: SIP/2.0/UDP 10.45.5.254:5060;branch=z9hG4bK20d04a5f;rport
From: "211" <sip:211@10.45.5.254>;tag=as3255478c
To: <sip:80456589@10.45.15.205>;tag=C92014-113A
Date: Wed, 22 May 2013 07:48:08 GMT
Call-ID: 2490e1dd761c2c8d1cfb621f032adf8d@10.45.5.254:5060
CSeq: 102 INVITE
Allow-Events: telephone-event
Warning: 304 10.45.15.205 "Media Type(s) Unavailable"
Reason: Q.850;cause=65
Server: Cisco-SIPGateway/IOS-12.x
Content-Length: 0А вот по H323:
May 22 14:06:10.957: ISDN Se0/0/0:15 Q931: Applying typeplan for sw-type 0x12 is 0x0 0x1, Calling num 211
May 22 14:06:10.961: ISDN Se0/0/0:15 Q931: Sending SETUP callref = 0x016D callID = 0x80EE switch = primary-net5 interface = Network
May 22 14:06:10.961: ISDN Se0/0/0:15 Q931: TX -> SETUP pd = 8 callref = 0x016D
Bearer Capability i = 0x8090A3
Standard = CCITT
Transfer Capability = Speech
Transfer Mode = Circuit
Transfer Rate = 64 kbit/s
Channel ID i = 0xA9838B
Exclusive, Channel 11
Progress Ind i = 0x8183 - Origination address is non-ISDN
Display i = '211'
Calling Party Number i = 0x0180, '211'
Plan:ISDN, Type:Unknown
Called Party Number i = 0x81, '6589'
Plan:ISDN, Type:Unknown
May 22 14:06:10.973: %VOICE_IEC-3-GW: H323: Internal Error (Cap not supported): IEC=1.1.278.5.91.0 on callID 1249 GUID=434445464748494A4B4C4D4E4F505152
May 22 14:06:10.977: ISDN Se0/0/0:15 Q931: RX <- SETUP_ACK pd = 8 callref = 0x816D
Channel ID i = 0xA9838B
Exclusive, Channel 11
May 22 14:06:10.977: ISDN Se0/0/0:15 Q931: RX <- PROGRESS pd = 8 callref = 0x816D
Progress Ind i = 0x8088 - In-band info or appropriate now available
May 22 14:06:10.989: ISDN Se0/0/0:15 Q931: TX -> DISCONNECT pd = 8 callref = 0x016D
Cause i = 0x82C1 - Bearer capability not implemented
May 22 14:06:10.997: ISDN Se0/0/0:15 Q931: RX <- CALL_PROC pd = 8 callref = 0x816D
Progress Ind i = 0x8088 - In-band info or appropriate now available
May 22 14:06:11.001: ISDN Se0/0/0:15 Q931: RX <- PROGRESS pd = 8 callref = 0x816D
Progress Ind i = 0x8088 - In-band info or appropriate now available
May 22 14:06:11.001: ISDN Se0/0/0:15 Q931: RX <- ALERTING pd = 8 callref = 0x816D
Progress Ind i = 0x8082 - Destination address is non-ISDN
May 22 14:06:11.005: ISDN Se0/0/0:15 **ERROR**: Ux_BadMsg: Invalid Message for call state 11, call id 0x80EE, call ref 0x16D, event 0x2
May 22 14:06:11.005: ISDN Se0/0/0:15 **ERROR**: Ux_BadMsg: Invalid Message for call state 11, call id 0x80EE, call ref 0x16D, event 0x3
May 22 14:06:11.005: ISDN Se0/0/0:15 **ERROR**: Ux_BadMsg: Invalid Message for call state 11, call id 0x80EE, call ref 0x16D, event 0x1
May 22 14:06:11.005: ISDN Se0/0/0:15 Q931: RX <- RELEASE pd = 8 callref = 0x816D
May 22 14:06:11.005: ISDN Se0/0/0:15 Q931: TX -> STATUS pd = 8 callref = 0x016D
Cause i = 0x80E202 - Message not compatible with call state or not implemented
Call State i = 0x0C
May 22 14:06:11.005: ISDN Se0/0/0:15 Q931: TX -> STATUS pd = 8 callref = 0x016D
Cause i = 0x80E203 - Message not compatible with call state or not implemented
Call State i = 0x0C
c2811-45-voip#
May 22 14:06:11.009: ISDN Se0/0/0:15 Q931: TX -> STATUS pd = 8 callref = 0x016D
Cause i = 0x80E201 - Message not compatible with call state or not implemented
Call State i = 0x0C
May 22 14:06:11.009: ISDN Se0/0/0:15 Q931: TX -> RELEASE_COMP pd = 8 callref = 0x016D
Во-первых нужно четко указать куда и как идет вызов. Во-вторых нужно выкладывать полные дебаги, у Вас в SIP только одно сообщение, а в H.323 вообще ничего, вместо этого Q.931.
Насколько я понял вызов идет от Астериска, какое устройство за ним? Не используйте с Астериском H.323, жутко глючная вешь. Покажите полный debug ccsip messages для проблемного вызова. А еще было бы правильно отписать входищий пир.
> Во-первых нужно четко указать куда и как идет вызов. Во-вторых нужно выкладывать
> полные дебаги, у Вас в SIP только одно сообщение, а в
> H.323 вообще ничего, вместо этого Q.931.
> Насколько я понял вызов идет от Астериска, какое устройство за ним? Не
> используйте с Астериском H.323, жутко глючная вешь. Покажите полный debug ccsip
> messages для проблемного вызова. А еще было бы правильно отписать входищий
> пир.На астериске зарегистрирован телефон QTECH QVP-100 под номером 211. С него и совершается звонок. От циски уходит PRI на ЦАТС по Е1.
Я слышал, что h323 у астериска кривой, но ведь с другими цисками работает...
Входящий пир на циске я приводил, на астериске входящие не делал совсем, потому что пока не нужна обратная связь с других устройств.
Вот полный дебаг проблемного вызова:
May 22 13:48:08.639: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Received:
INVITE sip:80456589@10.45.15.205 SIP/2.0
Via: SIP/2.0/UDP 10.45.5.254:5060;branch=z9hG4bK20d04a5f;rport
Max-Forwards: 70
From: "211" <sip:211@10.45.5.254>;tag=as3255478c
To: <sip:80456589@10.45.15.205>
Contact: <sip:211@10.45.5.254:5060>
Call-ID: 2490e1dd761c2c8d1cfb621f032adf8d@10.45.5.254:5060
CSeq: 102 INVITE
User-Agent: Navigator
Date: Wed, 22 May 2013 07:48:08 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 221v=0
o=root 562703965 562703965 IN IP4 10.45.5.254
s=Navigator
c=IN IP4 10.45.5.254
t=0 0
m=audio 12142 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecvMay 22 13:48:08.651: %VOICE_IEC-3-GW: SIP: Internal Error (INVITE, codec mismatch): IEC=1.1.278.7.110.0 on callID 1148
May 22 13:48:08.655: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Sent:
SIP/2.0 488 Not Acceptable Media
Via: SIP/2.0/UDP 10.45.5.254:5060;branch=z9hG4bK20d04a5f;rport
From: "211" <sip:211@10.45.5.254>;tag=as3255478c
To: <sip:80456589@10.45.15.205>;tag=C92014-113A
Date: Wed, 22 May 2013 07:48:08 GMT
Call-ID: 2490e1dd761c2c8d1cfb621f032adf8d@10.45.5.254:5060
CSeq: 102 INVITE
Allow-Events: telephone-event
Warning: 304 10.45.15.205 "Media Type(s) Unavailable"
Reason: Q.850;cause=65
Server: Cisco-SIPGateway/IOS-12.x
Content-Length: 0
May 22 13:48:08.659: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Received:c2811-45-voip#ACK sip:80456589@10.45.15.205 SIP/2.0
Via: SIP/2.0/UDP 10.45.5.254:5060;branch=z9hG4bK20d04a5f;rport
Max-Forwards: 70
From: "211" <sip:211@10.45.5.254>;tag=as3255478c
To: <sip:80456589@10.45.15.205>;tag=C92014-113A
Contact: <sip:211@10.45.5.254:5060>
Call-ID: 2490e1dd761c2c8d1cfb621f032adf8d@10.45.5.254:5060
CSeq: 102 ACK
User-Agent: Navigator
Content-Length: 0
> Входящий пир на циске я приводил, на астериске входящие не делал совсем,
> потому что пока не нужна обратная связь с других устройств.Вы показали только исходящий pots пир, по уму нужен еще и входящий voip.
Зырим в SDP и видим a=rtpmap:8 PCMA/8000, это G.711 A-law кодек.
Видим отбой по IEC
> May 22 13:48:08.651: %VOICE_IEC-3-GW: SIP: Internal Error (INVITE, codec mismatch): IEC=1.1.278.7.110.0
> on callID 1148Соответственно делаем входящий пир
dial-peer voice 1 voip
incoming called-number ^8045....$
codec g711a-law
permission origИ проверяем. Если не помогает - зырим sh call hist voice last 1 сразу после проблемного вызова.
>[оверквотинг удален]
> Видим отбой по IEC
>> May 22 13:48:08.651: %VOICE_IEC-3-GW: SIP: Internal Error (INVITE, codec mismatch): IEC=1.1.278.7.110.0
>> on callID 1148
> Соответственно делаем входящий пир
> dial-peer voice 1 voip
> incoming called-number ^8045....$
> codec g711a-law
> permission orig
> И проверяем. Если не помогает - зырим sh call hist voice last
> 1 сразу после проблемного вызова.Действительно, все заработало и по SIP и по H323! Спасибо огромное за помощь!
Но, объясните мне пожалуйста, почему на остальных цисках организации все работало при тех же настройках, а в этой обязательно нужно дополнительный пир делать?
> Но, объясните мне пожалуйста, почему на остальных цисках организации все работало при
> тех же настройках, а в этой обязательно нужно дополнительный пир делать?Настройки наверняка не одинаковые и были какие-то входящие пиры. Если входящего пира нет, используется дефолтный пир (по умолчанию 0, можно сделать таким любой voip), а какие там умолчания может зависеть от версии IOS'а.
>> Но, объясните мне пожалуйста, почему на остальных цисках организации все работало при
>> тех же настройках, а в этой обязательно нужно дополнительный пир делать?
> Настройки наверняка не одинаковые и были какие-то входящие пиры. Если входящего пира
> нет, используется дефолтный пир (по умолчанию 0, можно сделать таким любой
> voip), а какие там умолчания может зависеть от версии IOS'а.Огромное Вам спасибо, за помощь!
Единственное, если еще кто-то столкнется, то я данный диалпир сделал более универсальным:
dial-peer voice 1 voip
permission orig
huntstop
voice-class codec 1
incoming called-number ^8045..TТак с этой циской смогут договориться на другие кодеки и позвонить на более длинные номера (город например).
> Единственное, если еще кто-то столкнется, то я данный диалпир сделал более универсальным:
>
> Так с этой циской смогут договориться на другие кодеки и позвонить на
> более длинные номера (город например).Старайтесь не делать универсальных пиров без необходимости, в дальнейшем упрощает жизнь при усложнении системы.