Отличный инструмент для анализа SIP-трафика
Давненько...
Давненько не попадались мне мягко говоря странные SIP-провайдеры. Обычно ведь как - выдали логин, пароль и адрес SIP-сервера и вперёд. Но в этот раз всё было совсем по-другому.Началось с того, что была поставлена задача — обеспечить удалённый офис функционалом конференций. В том офисе в качестве SIP-сервера трудился Asterisk. После непродолжительных раскопок было установлено, что для Asterisk имеется ConfBridge и MeetMe. ConfBridge был сразу же откинут в сторону по причини геморройности его настройки и слабой стабильности работы. Взгляд упал на MeetMe и я начал копать в эту сторону.
Оказалось, что в CentOS 6 из репозитория Asterisk ставится без поддержки MeetMe, а для того, чтобы включить его поддержку, нужно:
- скомпилировать Dahdi;
- скомпилировать ZTDummy;
- скомпилировать 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.: провайдера зовут ВиЛэнд, город Москва.
Комментарии
Отправить комментарий