Вы здесь

SIP и Call Manager. Часть 2 Настройка SIP gateway

Session Initiation Protocol (SIP) - один из наиболее важных и самых распространенных сигнальных протоколов. SIP поддерживает наибольшее количество вендоров. SIP продолжает распространяться и уже сейчас является идеальным протоколом для подключения различных систем VoIP.

В первой части SIP и Call Manager. Часть 1 Теория мы рассмотрели краткую теорию. В данной статье мы обсудим вопросы настройки SIP на IOS gateways.

Настройка SIP состоит из двух частей:

  • Настройка SIP UA. Точнее сказать UAC (User Agent Client). Настройка UAC состоит из:
    - Authentication parameters: username and password
    - SIP servers (registrar and proxy)
  • Настройка VoIP Dial peers. В самом Dial peer есть настройки, специфичные для SIP:
    - Session protocol
    - Session target

Настройка User Agent

sip-ua
authentication username mir_user password psswr
registrar 10.10.1.15
sip-server 10.10.1.15

Команда registrar позволяет шлюзу регистрировать внутренние номера на внешнем сервере Registrar server. Благодаря этому система сможет принимать входящие звонки. Адрес можно вбить вручную или получить по DHCP (опция registrar-index).
Имя и пароль будут использоваться для доступа к Registrar server а также к Proxy server.

Dial-Peer Configuration

dial-peer voice 2001 voip
destination-pattern 2...
session protocol sipv2
session target sip-server
!
dial-peer voice 2002 voip
destination-pattern 9T
session target ipv4:192.168.10.100
session protocol sipv2

session protocol sipv2 Команда дает инструкцию в данном Dial-peer использовать протокол SIPv2.

Команда session target настраивает шлюз использовать определенный IP - адрес нужного SIP сервера, причем:
session target sip-server будет использовать настройки указанные в разделе sip-ua. Это позволяет не заморачиваться каждый раз на IP-адресе.

session target ipv4:192.168.10.100 - Здесь, как видно, IP адрес вбит "в лоб".

Дополнительные настройки

  • Session transport protocol. Данные настройки позволяют задать session transport protocol: TCP, TCP-TLS, or UDP.
    Доступно в global SIP, dial-peer, or UA configuration mode
  • Source IP address. Т.е. IP адрес с которого будет инициализироваться SIP-сессия.
    Доступно только в global SIP.
  • Tuning SIP timers. Доступно только в UA configuration mode.

Пример конфигурации Gateway-to-Gateway

sip_i_call_manager._chast_1_teoriya_sip_gateway-to-gateway_ciscomaster.ru.jpg

voice service voip
sip
session transport top
bind all source-interface
loopback 0 ipv4-address 10.1.1.1
!
dial-peer voice 1 voip
destination-pattern 2...
session protocol sipv2
session target ipv4:10.2.1.1
!
sip-ua
disable-early-media 180
voice service voip
sip
bind all source-interface
loopback 0 ipv4-address 10.2.1.1
!
dial-peer voice 1 voip
destination-pattern 1...
session protocol sipv2
session target ipv4:10.1.1.1
session transport top
!
sip-ua
disable-early-media 180

Здесь отметим команду disable-early-media.
Early Media - стандарт, позволяющий передавать media еще до инициализации стандартного RTP, что может улучшать качество, но не всему устройствами поддерживается.

Пример конфигурации UA

UA или User Agent - это по сути SIP-клиент.
Ниже приводится пример конфигурации подключения шлюза к SIP - провайдеру. Для исходящих звонков.
sip_i_call_manager._chast_1_teoriya_sip_ua_ciscomaster.ru_0.jpg

voice service voip
sip
bind all source-interface loopback0 ipv4-address 10.1.1.1
!
sip-ua
authentication username JDoe password secret
registrar 10.1.1.15 expires 3600
sip-server 10.1.1.15
timers connect 1000
timers register 300
!
dial-peer voice 10 voip
destination-pattern 9T
session target ipv4:192.168.1.100
session protocol sipv2
session transport tсp

Проверка

show sip-ua service
show sip-ua status
show sip-ua register status
show sip-ua timers
show sip-ua connections
show sip-ua calls
show sip-ua statistics

Дебаг

¦ debug ccsip: This command has various options, as follows:
¦ debug ccsip all: This command enables all ccsip-type debugging. This debug
command is very active; you should use it sparingly in a live network.
¦ debug ccsip calls: This command displays all SIP call details as they are updated
in the SIP call control block. You can use this debug command to monitor call
records for suspicious clearing causes.
¦ debug ccsip errors: This command traces all errors that are encountered by the
SIP subsystem.
¦ debug ccsip events: This command traces events, such as call setups, connec-
tions, and disconnections. An events version of a debug command is often the
best place to start because detailed debugs provide much useful information.
¦ debug ccsip info: This command enables tracing of general SIP security parame-
ter index (SPI) information, including verification that call redirection is disabled.
¦ debug ccsip media: This command enables tracing of SIP media streams.
¦ debug ccsip messages: This command shows the headers of SIP messages that
are exchanged between a client and a server.
¦ debug ccsip preauth: This command enables diagnostic reporting of authentica-
tion, authorization, and accounting (AAA) for SIP calls.
¦ debug ccsip states: This command displays the SIP states and state changes for
sessions within the SIP subsystem.
¦ debug ccsip transport: This command enables tracing of the SIP transport han-
dler and the TCP or UDP process.
¦ debug voip ccapi inout: This command shows every interaction with the call control
application programming interface (API) on both the telephone interface and on the
VoIP side. By monitoring the output, you can follow the progress of a call from the
inbound interface or VoIP peer to the outbound side of the call. This debug com-
mand is very active; you should use it sparingly in a live network.
¦ debug voip ccapi protoheaders: This command displays messages that are sent be-
tween the originating and terminating gateways. If no headers are being received by
the terminating gateway, verify that the header-passing command is enabled on the
originating gateway.

Комментарии

Куда делась 3 часть про настройку SIP транков?

Пока дорабатывается, там обнаружилось пара некорректных моментов

А как скоро она появится в исправленом виде?

С нетерпением ждем 3ю часть

Остался не ясным момент:

Настройка SIP UA. Точнее сказать UAC (User Agent Client). Настройка UAC состоит из:
- Authentication parameters: username and password
- SIP servers (registrar and proxy)

Может конечно я что-то не так делаю, но у меня циска выдает что параметра authentication нету:

Router(config-sip-ua)#?
SIP UA configuration commands:
default Set a command to its defaults
exit Exit from sip-ua configuration mode
max-forwards Change number of max-forwards for SIP Methods
no Negate a command or set its defaults
retry Change default retries for each SIP Method
sip-server Configure a SIP Server Interface
timers SIP Signaling Timers Configuration
transport Enable SIP UA transport for TCP/UDP

Router(config-sip-ua)#

У вас что-то обрезано. Может не активирована лицензия Voice?

router(config-sip-ua)#? SIP UA configuration commands: aaa sip-ua AAA related configuration authentication Digest Authentication Configuration calling-info Specify treatment of calling information connection-reuse Use listener port for sending requests over UDP credentials User credentials for registration default Set a command to its defaults dhcp Configure SIP-DHCP disable-early-media Disable early-media cut through exit Exit from sip-ua configuration mode handle-replaces Handle INVITE with REPLACES header at SIP spi host-registrar Use sip-ua registrar value in Diversion and Contact header for 3xx messages interop-handling Enable interop-handling keepalive Configure keepalive mechanism max-forwards Change number of max-forwards for SIP Methods mwi-server Configure a mwi Server nat Enable NAT(Network Address Traversal) settings for the SIP User Agent no Negate a command or set its defaults notify SIP Signaling Notify Configuration offer Configure settings for Offers made from the Gateway permit Permit hostname for this gateway presence Enable/Disable Presence support protocol Configure SIP gateway mode of operation rai Configure SIP RAI mechanism reason-header Configure settings for supporting SIP Reason Header redirection Enable call redirection (3xx) handling refer-ood Configure maximum number of out-of-dialog refer made to the Gateway registrar Configure SIP registrar VoIP Interface registration Enable registration options remote-party-id Enable Remote-Party-ID support in SIP User Agent retry Change default retries for each SIP Method set Sets the PSTN cause to SIP status code (and vice versa) and sets the PSTN cause to SIP requests sip-server Configure a SIP Server Interface srv DNS SRV Query Type suspend-resume Enable support for ISDN SUSPEND/RESUME timers SIP Signaling Timers Configuration transport Enable SIP UA transport for TCP/UDP trust-point Find best address for a given trust-point

А как быть если мне провайдер выдал отдельные регистрации под каждый номер?

пример моего конфига

no sip-ua
sip-ua
credentials number 3517786355 username 3517786355 password xxxxxxxxx realm 81.90.208.30
credentials number 3517786354 username 3517786354 password yyyyyyyyy realm 81.90.208.30
registrar ipv4:81.90.208.30 expires 240
sip-server ipv4:81.90.208.30

Провайдер говорит что подключение видит, а вот запросы регистрации не приходят. Лог вот что пишет:

Feb 4 10:16:17.411: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Sent:
REGISTER sip:81.90.208.30:5060 SIP/2.0
Via: SIP/2.0/UDP 81.90.220.26:5060;branch=z9hG4bK6A1306
From: ;tag=5D6060-1DEC
To:
Date: Tue, 04 Feb 2014 10:16:17 GMT
Call-ID: ACE8129D-8CB411E3-8010A057-5C75DA15
User-Agent: Cisco-SIPGateway/IOS-15.3.3.M
Max-Forwards: 70
Timestamp: 1391508977
CSeq: 29 REGISTER
Contact:
Expires: 240
Supported: path
Content-Length: 0

Feb 4 10:16:17.411: //108/000000000000/SIP/Msg/ccsipDisplayMsg:
Received:
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 81.90.220.26:5060;branch=z9hG4bK6A1306;received=81.90.220.26
From: ;tag=5D6060-1DEC
To: ;tag=as423238e4
Call-ID: ACE8129D-8CB411E3-8010A057-5C75DA15
CSeq: 29 REGISTER
Server: Hypernet, LLC
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="hypernet.ru", nonce="71574435"
Content-Length: 0

Feb 4 10:16:17.415: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Sent:
REGISTER sip:81.90.208.30:5060 SIP/2.0
Via: SIP/2.0/UDP 81.90.220.26:5060;branch=z9hG4bK6B20B6
From: ;tag=5D6064-2028
To:
Date: Tue, 04 Feb 2014 10:16:17 GMT
Call-ID: ACE8AF5E-8CB411E3-8011A057-5C75DA15
User-Agent: Cisco-SIPGateway/IOS-15.3.3.M
Max-Forwards: 70
Timestamp: 1391508977
CSeq: 29 REGISTER
Contact:
Expires: 240
Supported: path
Content-Length: 0

Feb 4 10:16:17.415: //109/000000000000/SIP/Msg/ccsipDisplayMsg:
Received:
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 81.90.220.26:5060;branch=z9hG4bK6B20B6;received=81.90.220.26
From: ;tag=5D6064-2028
To: ;tag=as357fb0e3
Call-ID: ACE8AF5E-8CB411E3-8011A057-5C75DA15
CSeq: 29 REGISTER
Server: Hypernet, LLC
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="hypernet.ru", nonce="20e9f677"
Content-Length: 0

Добавлю, что если настраивать каждый номер отдельно через authentication то все работает корректно.

вместе два номера работать не хотят.

При успешной авторизации появляется в логах такое вот сообщение:

Feb 4 10:20:17.414: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Sent:
REGISTER sip:81.90.208.30:5060 SIP/2.0
Via: SIP/2.0/UDP 81.90.220.26:5060;branch=z9hG4bK6F1154
From: ;tag=6109E0-2083
To:
Date: Tue, 04 Feb 2014 10:20:17 GMT
Call-ID: ACE8129D-8CB411E3-8010A057-5C75DA15
User-Agent: Cisco-SIPGateway/IOS-15.3.3.M
Max-Forwards: 70
Timestamp: 1391509217
CSeq: 32 REGISTER
Contact:
Expires: 240
Authorization: Digest username="3517786355",realm="hypernet.ru",uri="sip:81.90.208.30:5060",response="38b4330fec631a3a7a52312dff36f99e",nonce="3aac7e36",algorithm=MD5
Content-Length: 0

как этого добиться с credentials?

Вам нужно настраивать несколько Registrars.
Configuring Multiple Registrars on SIP Trunks

Данную ссылку уже затер до "дыр".. либо я плохо понимаю анлийский, либо там о моем случае ничего не написано.

пробовал такой вариант

sip-ua
credentials number 3517786355 username 3517786355 password xxxxxxxxxx realm 81.90.208.30
credentials number 3517786354 username 3517786354 password yyyyyyyyyy realm 81.90.208.30
registrar 1 ipv4:81.90.208.30 expire 240
registrar 2 ipv4:81.90.208.30 expire 240
sip-server ipv4:81.90.208.30

Результат такой:

sh sip-ua register st
--------------------- Registrar-Index 1 ---------------------

Line peer expires(sec) reg survival P-Associ-URI
================================ ========== ============ === ======== ============
3517786354 -1 28 no normal
3517786355 -1 28 no normal

--------------------- Registrar-Index 2 ---------------------

Line peer expires(sec) reg survival P-Associ-URI
================================ ========== ============ === ======== ============
3517786354 -1 28 no normal
3517786355 -1 28 no normal

в остальном все по прежнему

Проблема была в параметре Realm
Это должен быть не IP или DNS-имя сервера, как я ошибочно думал. правильное значение параметра можно посмотреть в логах ответа сервера при попытке авторизоваться.

sip-ua
credentials number 3517786355 username 3517786355 password xxxxxxxxxx realm hypernet.ru
credentials number 3517786354 username 3517786354 password yyyyyyyyyy realm hypernet.ru
registrar ipv4:81.90.208.30 expire 240
sip-server ipv4:81.90.208.30

нормально

а такой вопрос, возможно не по теме конечно. Есть например Cisco 2851, какое количество sip сессий она сможет обработать?
И тут еще вопрос в том, что sip-транк будет с провайдером и с Lync сервером. Если мы хотим к провайдеру например 72 сессии, то сможет ли Cisco обработать 144 сессии?

Если на маршрутизаторе не задействован транскодинг, 2851 поддержит порядка 500 полноценных сессий Flow-Through, см.
http://www.cisco.com/c/en/us/products/collateral/unified-communications/...

Спасибо. Только 2851 получается 225. Транскодинг пока не известно будет или нет.

Всем привет! Столкнулся с проблемой на ISR 2921 IOS 15.5(1)T1, регистрирую на нём 7841 телефоны с последней прошивкой. Проблема состоит в том, что при звонке с одного телефона на соседний появляются RTP Legs с роутера на оба телефона. манипуляции с redirect ip2ip или media flow-through/flow-around эффекта не дают, ноги по прежнему кидаются на шлюз и от него. В чём может быть проблема? Заранее спасибо за любые подсказки.

Вы уверены что это именно RTP legs?
что показывает show voip rtp connections ?
Также зайдите на html страницы самих телефонов, там тоже можно посмотреть куда идёт RTP

Уверен! В sh VoIP rtp conn присутствуют 2 ноги. В лампах то же самое. Кстати, эта новая серия 78xx телефонов, почему то не отображаются html страницы самих аппаратов.

как-то так:
VoIP RTP active connections :
No. CallId dstCallId LocalRTP RmtRTP LocalIP RemoteIP
1 685 686 16480 32228 10.7.50.1 10.7.50.106
2 686 685 16482 18450 10.7.50.1 10.7.50.102

Дополнительно, смотрел сегодня занятость dsp и sh call active voice compact, и таки да, при звонке на соседний в подсети телефон, появляются разумного происхождения call legs g711alaw, в sh call active voice compact, call leg помечается как media flow-through. DSP при этом не занят. Пробовал в подсекции sip секции CUBE давать no bind media source-address gig0/1, нет эффекта.

Попробуйте зазеркалить порт одного из телефонов и разберите пакеты через Wireshark.

НА телефон доступ может быть запрещен, попробуйте команду:
telephony-service
service phone webAccess 0

Отчетливо виден медиа-поток между телефоном и CUBE

Что имеет смысл искать в дампе?

спасибо, помогло вот что:

telephony-service
service phone webAccess 0

voice register global
create profile
apply-config

По теме топика.
Спасибо автору за труд!
Хотелось бы поинтересоваться, как организовать работу CUBE с подключенным sip-провайдером, если есть CUCM-кластер Publisher и Subscriber.
Т.е. как правильно написать dial-peer, что бы при недоступности ip-адреса Publisher, sip-пакеты отправлялись на ip-адрес Subscriber?
И соответственно, какие настройки должны быть прописаны в CUCM-кластере (Publisher и Subscriber)?
Спасибо!

Приветствую.
Подскажите, если я правильно понял, cisco 2921 может поднять 6 x SIP trunk-ов, т.е. можно подключить 6 разных sip провайдеров. Но вот если провайдер предоставляет услуги без аутентификации, только по IP. Вместе и с sip аутентификацией на sip сервере и без аутентификации будет работать?

Да, это будет работать.

Например при аутентификации будет использоваться sip ua, и диалпир будет выглядеть примерно так:

dial-peer voice 9 voip
description -- Local calls
translation-profile outgoing LOCAL_CALLS_via9
preference 3
destination-pattern 9[1-7,9]......
session protocol sipv2
session target sip-server
voice-class codec 1
dtmf-relay rtp-nte
ip qos dscp cs3 signaling
no vad

Дилпир без требования аутентификации будет отличаться строкой:
session target sip-server
поменять на
session target itsp_ip_address

А если sip-server не один и все с аутентификацией, тогда в диал-пире в строке "session target sip-server", что нужно писать для каждого провайдера?

Очень хорошая статья, автор молодец! А был ли у кого нибудь опыт стыковки терминалов aastra и cucm?) проблема в том что Астре все равно на конфиги от циски) она берет их с tftp сервера, и в этих конфигах указывается номер, аутентификационные данные и тд) как быть?)

Ошибочная ссылка:

"В первой части SIP и Call Manager. Часть 1 Теория мы рассмотрели краткую теорию."
http://ciscomaster.ru/content/sip-i-call-manager-chast-1-teoriya#overlay...

Вот верная:
http://ciscomaster.ru/content/sip-i-call-manager-chast-1-teoriya-0

Спасибо, исправил

Люди добрые подскажите как сделать. Провайдер предоставляет 12 сип номеров с регистрацией и аутентификацией при совершении звонка?логин отличается от номера телефона и на каждый номоер она своя.

а к кому обратиться за доступом к этому разделу?

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Target Image