Отличный инструмент для анализа SIP-трафика

Давненько...

Давненько не попадались мне мягко говоря странные SIP-провайдеры. Обычно ведь как - выдали логин, пароль и адрес SIP-сервера и вперёд. Но в этот раз всё было совсем по-другому.

Началось с того, что была поставлена задача — обеспечить удалённый офис функционалом конференций. В том офисе в качестве SIP-сервера трудился Asterisk. После непродолжительных раскопок было установлено, что для Asterisk имеется ConfBridge и MeetMe. ConfBridge был сразу же откинут в сторону по причини геморройности его настройки и слабой стабильности работы. Взгляд упал на MeetMe и я начал копать в эту сторону.

Оказалось, что в CentOS 6 из репозитория Asterisk ставится без поддержки MeetMe, а для того, чтобы включить его поддержку, нужно:
  1. скомпилировать Dahdi;
  2. скомпилировать ZTDummy;
  3. скомпилировать Asterisk с поддержкой MeetMe.
Весь этот процесс пересобирания Asterisk'а производить вообще не хотелось. К тому же конференции необходимо было завести быстро и по возможности без перерыва в обслуживании абонентов.

Что я знаю про конференции? А то, что я их уже не раз и довольно быстро заводил на FreeSwitch. Да и вообще (ИМХО), FreeSwitch удобнее и шустрее, нежели Asterisk. Вот я и принялся ставить рядом с астером новый FreeSwitch.

Поставился он довольно шустро, конференции тоже завелись махом. Что делать дальше — переводить абонентов и цеплять провайдера. Время уже было не рабочее, в удалённом офисе никого не осталось и поэтому Asterisk был безболезненно погашен, а на его место гордо встал FreeSwitch. Абоненты тут же переподцепились, зарегистрировались и далее меня ждал последний рубеж - подцепить провайдера. Надо сказать, что таких слов, как при преодолении этого рубежа, я не вспоминал очень давно. Хотя, может быть это сказывается тот факт, что с Asterisk я работал крайне мало, по сравнению с FreeSwitch.

Собственно, подцепить тамошнего провайдера с первого (а так же со второго и третьего) раза не получилось. Причина — очень странный набор параметров при подключении. В конфиге астера было прописано так: register => UserName:Password:RegisterName@SERVER/PhoneNumber; Вот ни разу я такого не видел. И как это к FS цеплять понятия не имел. И у провайдера никакой информации нет на официальном сайте, и техподдержка только днём в рабочее время у них отвечает, и гугление по названию провайдера не помогает... Из обрывков информации об этом провайдере у меня было только название провайдера, строка подключения для астера и комментарий, доставшийся от коллеги, который настраивал астер: "PhoneNumber -номер для приема вызовов в Вашем Asterisk. PhoneNumber - вставляется в SIP заголовок contact, SIP запроса на регистрацию. В дальнейшем данное значение Number используется для входящей связи на Asterisk в заголовке R-Uri, а в заголовке To: будет использоваться значение UserName".

Это сейчас мне строка подключения для астера и комментарий уже много о чём говорят, но на тот момент я понятия не имел, как именно это всё провернуть в FS. Вертел FS и так и эдак, и снифал tcpdump'ом - всё без толку.

Незнакомец из телеграм-канала @ru_freeswitch подсказал офигенный инструмент для анализа SIP-трафика - SNGREP. Поставил я его, немного покрутил параметрами шлюза в FS и всё получилось! И шлюз зарегистрировался. С tcpdump я, неверное проковырялся бы ещё часа два-три. А sngrep - мегаудобен!

Так что всем советую sngrep. SNGREP - наше всё для анализа SIP-трафика!

P.S.: провайдера зовут ВиЛэнд, город Москва.

Комментарии

Популярные сообщения из этого блога

Оживил бубен

Итоги интерактива и анонс

Автоматизация и первонах