По роду моей работы часто приходится разбираться в тонкостях работы протокола SIP. Ситуация обычная: различные реализации SIP, разные наборы RFC, при этом стандарты истолкованы бывают каждым по-своему.

Иногда очень не хватает кого-либо разбирающегося в протоколе и говорящего на «великом и могучем», чтобы обсудить, принять верное решение. Если найдутся желающие — можно общаться на #asteriskru или любым другим образом. Если нет таких, то буду писать в sip-implementors, но общению там недостает живости, да и в языке своем я не до конца уверен.

Сейчас плотно занимаюсь изучением механизмов работы PRACK и UPDATE, читаю Гольдштейна. К сожалению в астериске они не поддерживаются. Механизмы с PRACK и UPDATE могут использоваться для реализации механизмов QoS, уточнения списка кодеков во время установления сессии, через них реализуются услуги, работающие до установления голосовой связи. Пишу сейчас реализацию PRACK и UPDATE в Asterisk под свой конкретный случай... Попутно уже надоело тестировать аппараты, которые не работают:

  • DLink: нарушает RFC3264
  • Linksys: не поддерживает RFC3311 (b не будет), нарушает RFC3262
  • VegaStream: нарушает RFC3262
  • Grandstream: после трёх месяцев переписки с саппортом удалось заставить работать GXV-3000
  • Софт-клиенты: в основном нет поддержки RFC3262, список можно продолжать (в действительности у меня нет аппаратов которые работают нормально)

PS. А ISC DHCPd меня удивил. Я когда-то настраивал его, чтобы выдавать IP через relay настроенные на циске (десятки подсетей). Пришлось адрес релея доставать из опции 82, писать сложный конфиг. А сервер оказывается всю работу делает автоматически... К чему это я? Будьте проще... :)

автор igorg \\ теги: , , , , ,

  • Widget

    Близко к теме, а может быть и нет: не встречался ли с таким багом (проявляется при работе с телефонами Cisco и Asterisk 1.6.0.5), Asterisk некорректно работает с заголовком SIP Session-Expires

    Корки наловили следующее:

    1. случай раз

    #0 proc_session_timer (vp=0xb6812ff0) at chan_sip.c:19238

    19238 if (p->stimer->st_active == TRUE) {

    2. случай два

    #0 proc_session_timer (vp=0×8479248) at chan_sip.c:19244

    19244 if ((p->stimer->st_active != TRUE) || (p->owner->_state != AST_STATE_UP)) {

    3. случай три

    #0 proc_session_timer (vp=0xb62833c0) at chan_sip.c:19238

    19238 if (p->stimer->st_active == TRUE) {

    Видимо структура stimer убивается где-то до этого вызова

    bugs.digium.com/view.php?id=13623

  • http://igorg.ru igorg

    Очевидно да, где-то не хватает блокировок. Я не встречался, так как необходимости использовать sesion timer не возникало.

  • Gulikov Andrey

    Hellow, «colleague».

    Добрый день, коллега по сип. Я наверное могу считать себя знатоком сип на фоне множеств других «знатоков». Но, как в любом деле, предела совершенства нет (лично, мне пришлось реализовывать сип на базе одного коммерческого продукта), сейчас я продолжаю занимаются сопровождением своего кода.

    С PRACK и UPDATE иметь дело не приходилось, помочь советами не смогу. Но в принципе было бы приятно помочь и/или взаимно получить дельный совет.

    С уважением, Гуликов Андрей.

    P.S. В аське не сижу, почту смотрю не каждый день, так что могу отвечать не сразу.

  • http://igorg.ru igorg

    Спасибо за ответ, в случае необходимости обращусь

  • http://sfinx.od.ua Harbour

    Кстати а какую сейчас принято прогу использовать для тестирования sip conformance ? Нашел тут на просторах sipbomber ...

  • http://igorg.ru igorg

    protos-c07-sip, правда он скорее немного других целей

  • http://sfinx.od.ua Harbour

    sipbomber именно из protos берет основной набор тестов. у меня грядет sip-сертификация asterisk ;) хочу хоть как-то подготовиться

  • http://igorg.ru igorg

    Интересно. Было бы полезно узнать о результатах и о методике сертификации

  • http://sfinx.od.ua Harbour

    результаты сообщу, если бы нарыл в сети или кто поделился прогой для официальных тестов — знал бы заранее чего подстроить или доработать чтобы наверняка проканало, а то эта сертификация денег стоит — не хочется второй раз ее проходить. ну и опять же будет прецедент, как минимум для Украины — думаю, всем будет интересно.

  • http://sfinx.od.ua Harbour

    кстати этот sipbomber какого-то рожна шлет UDP пакеты размером более 64k (?!) естественно вываливаясь по ошибке — эт прям какое-то садо-мазо внутри программы ...