Cisco голосовой шлюз — протокол Q931 Error 21

Часто при звонке в город вызов не проходит. Одна из таких проблем случилась у меня на работе.
При поиске проблемы я проверил настройки CUCM, а потом перешел на проверку голосового шлюза Cisco 3925, который соединен с CUCM по протоколу H323.
Первый дебаг который я сразу стал использовать — это debug voip ccapi inout. С помощью которого можно увидеть прохождение вызова, какие (номера) диалпиры выбраны в качестве входящих и исходящих, какие цифры отправляются, ошибки соединения.
C3925-DC-01_01#deb voip ccapi inout
voip ccapi inout debugging is on
C3925-DC-01_01#term mon
3y22w: //-1/80B6D9210200/CCAPI/cc_api_display_ie_subfields:
cc_api_call_setup_ind_common:
cisco-username=7356
----- ccCallInfo IE subfields -----
cisco-ani=7356
cisco-anitype=0
cisco-aniplan=0
cisco-anipi=0
cisco-anisi=1
dest=983
cisco-desttype=0
cisco-destplan=0
cisco-rdie=FFFFFFFF
cisco-rdn=
cisco-rdntype=-1
cisco-rdnplan=-1
cisco-rdnpi=-1
cisco-rdnsi=-1
cisco-redirectreason=-1 fwd_final_type =0
final_redirectNumber =
hunt_group_timeout =0
3y22w: //-1/80B6D9210200/CCAPI/cc_api_call_setup_ind_common:
Interface=0x41F3FD24, Call Info(
Calling Number=7356,(Calling Name=)(TON=Unknown, NPI=Unknown, Screening=User, Passed, Presentation=Allowed),
Called Number=983(TON=Unknown, NPI=Unknown),
Calling Translated=FALSE, Subscriber Type Str=Unknown, FinalDestinationFlag=TRUE,
Incoming Dial-peer=10, Progress Indication=NULL(0), Calling IE Present=TRUE,
Source Trkgrp Route Label=, Target Trkgrp Route Label=, CLID Transparent=FALSE), Call Id=34318
3y22w: //-1/80B6D9210200/CCAPI/ccCheckClipClir:
In: Calling Number=7356(TON=Unknown, NPI=Unknown, Screening=User, Passed, Presentation=Allowed)
3y22w: //-1/80B6D9210200/CCAPI/ccCheckClipClir:
Out: Calling Number=7356(TON=Unknown, NPI=Unknown, Screening=User, Passed, Presentation=Allowed)
3y22w: //-1/xxxxxxxxxxxx/CCAPI/cc_get_feature_vsa:
3y22w: :cc_get_feature_vsa malloc success
3y22w: //-1/xxxxxxxxxxxx/CCAPI/cc_get_feature_vsa:
3y22w: cc_get_feature_vsa count is 1
3y22w: //-1/xxxxxxxxxxxx/CCAPI/cc_get_feature_vsa:
3y22w: :FEATURE_VSA attributes are: feature_name:0,feature_time:1075219144,feature_id:33259
3y22w: //34318/80B6D9210200/CCAPI/cc_api_call_setup_ind_common:
Set Up Event Sent;
Call Info(Calling Number=7356(TON=Unknown, NPI=Unknown, Screening=User, Passed, Presentation=Allowed),
Called Number=983(TON=Unknown, NPI=Unknown))
3y22w: //34318/80B6D9210200/CCAPI/cc_process_call_setup_ind:
Event=0x41BF5CB8
3y22w: //-1/xxxxxxxxxxxx/CCAPI/cc_setupind_match_search:
Try with the demoted called number 983
3y22w: //34318/80B6D9210200/CCAPI/ccCallSetContext:
Context=0x136E201C
3y22w: //34318/80B6D9210200/CCAPI/cc_process_call_setup_ind:
CCAPI handed cid 34318 with tag 10 to app "_ManagedAppProcess_TOLLFRAUD_APP"
3y22w: //34318/80B6D9210200/CCAPI/ccCallDisconnect:
Cause Value=21, Tag=0x0, Call Entry(Previous Disconnect Cause=0, Disconnect Cause=0)
3y22w: //34318/80B6D9210200/CCAPI/ccCallDisconnect:
Cause Value=21, Call Entry(Responsed=TRUE, Cause Value=21)
3y22w: //34318/80B6D9210200/CCAPI/cc_api_get_transfer_info:
Transfer Number=NULL
3y22w: //34318/80B6D9210200/CCAPI/cc_api_call_disconnect_done:
Disposition=0, Interface=0x41F3FD24, Tag=0x0, Call Id=34318,
Call Entry(Disconnect Cause=21, Voice Class Cause Code=0, Retry Count=0)
3y22w: //34318/80B6D9210200/CCAPI/cc_api_call_disconnect_done:
Call Disconnect Event Sent
3y22w: //-1/xxxxxxxxxxxx/CCAPI/cc_free_feature_vsa:
3y22w: :cc_free_feature_vsa freeing 40168AC0
3y22w: //-1/xxxxxxxxxxxx/CCAPI/cc_free_feature_vsa:
3y22w: vsacount in free is 0
C3925-DC-01_01#
Из дебага сразу стало видно, что голосовой шлюз даже не стал отправлять вызов на исходящий диалпир, а отбил его (Disconnect Cause=21
)
Протокол Q931 Error 21 — The destination is capable of accepting the call but rejected the call for an unknown reason (Пункт назначения способен принять вызов, но отклонил его по неизвестной причине).
Посмотрел настройки на шлюзе и добавил в доверенный список адресов адреса CUCM в настройках голосового сервиса:
voice service voip
ip address trusted list
ipv4 172.17.13.3
ipv4 172.17.13.4
ipv4 172.17.13.5
После этого вызовы стали нормально проходить через голосовой шлюз. Конечно могут быть и другие причины связанные с этой ошибкой, но эта одна из них которая может встретиться в работе телефониста.