The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
OpenSIPS - presence & IM, !*! geekkoo, 19-Мрт-09, 17:35  [смотреть все]
Пытаюсь запустить определение присутствия пользователя на сервере OpenSIPS. По идее настройки должны быть аналогичны Kamaillo. В качестве клиента тестирую с помощью linphone. Вроде бы presence и IM и там и там работают через SIMPLE протокол, но тем не менее что-то не срастается, т.е. себя я в linphone вижу как offline.

В opensips.cfg всё что касается publish/subscribe я раскомментировал:
.....
      /* uncomment this if you want to enable presence server
           and comment the next 'if' block
           NOTE: uncomment also the definition of route[2] from  below */
        if( is_method("PUBLISH|SUBSCRIBE"))
                        route(2);

.....
# Presence route
/* uncomment the whole following route for enabling presence
   NOTE: do not forget to enable the call of this route from the main
     route */
route[2]
{
        xlog("RRRRR!");
        if (!t_newtran())
        {
                sl_reply_error();
                exit;
        };

        if(is_method("PUBLISH"))
        {
                xlog("Process PUBLISHING");
                if($hdr(Sender)!= NULL)
                {
                        xlog("PUBLISH $hdr(Sender)\n");
                        handle_publish("$hdr(Sender)");
                }
                else
                        handle_publish();

                t_release();
        }
        else
        if( is_method("SUBSCRIBE"))
        {
                xlog("Subscribing!\n");
                handle_subscribe();
                t_release();
        }

        exit;
}
....

И как вообще дебажить route-скрипт? Я понавтыкал повсюду эти xlog, но в log-ах я соответсвующих записей не вижу. Что я делаю не так?

Заранее спасибо.

  • OpenSIPS - presence & IM, !*! geekkoo, 13:11 , 20-Мрт-09 (1)
    >[оверквотинг удален]
    >
    >        exit;
    >}
    >....
    >
    >И как вообще дебажить route-скрипт? Я понавтыкал повсюду эти xlog, но в
    >log-ах я соответсвующих записей не вижу. Что я делаю не так?
    >
    >
    >Заранее спасибо.

    Гм. С дебагом разобрался - действительно xlog (и xdbg) выдают дебажную информацию в лог. Т.е. получается у меня реально до обработки PUBLISH и SUBSCRIBE дело не доходит, где-то пакеты теряются.

    • OpenSIPS - presence & IM, !*! geekkoo, 14:47 , 23-Мрт-09 (2)
      >[оверквотинг удален]
      >>
      >>И как вообще дебажить route-скрипт? Я понавтыкал повсюду эти xlog, но в
      >>log-ах я соответсвующих записей не вижу. Что я делаю не так?
      >>
      >>
      >>Заранее спасибо.
      >
      >Гм. С дебагом разобрался - действительно xlog (и xdbg) выдают дебажную информацию
      >в лог. Т.е. получается у меня реально до обработки PUBLISH и
      >SUBSCRIBE дело не доходит, где-то пакеты теряются.

      Вроде запрос SUBSCRIBE доходит до сервера, но ответа от него нет. В логах вот такая хрень (Too Many Hops):

      Mar 23 14:41:02 [29435] DBG:core:build_res_buf_from_sip_res: copied size: orig:1
      22, new: 27, rest: 344 msg=
      SIP/2.0 483 Too Many Hops
      Via: SIP/2.0/UDP 192.168.1.237:5060;received=192.168.1.237;rport=5060;branch=z9h
      G4bK951895524
      From:  <sip:mike@192.168.1.237>;tag=1124133299
      To: mike@xxxxx.ru <sip:mike@xxxxx.ru>;tag=c97b4d1cb1f3d0da549e06a8
      d482ef63.c998
      Call-ID: 651168074
      CSeq: 20 SUBSCRIBE
      Server: OpenSIPS (1.4.4-notls (i386/linux))
      Content-Length: 0

      По идее я настраивал без XCAP сервера, чтобы presence был виден всем:

      modparam("presence_xml", "force_active", 1)
      modparam("presence", "server_address", "sip:192.168.1.252:5060")


  • OpenSIPS - presence & IM, !*! geekkoo, 11:40 , 25-Мрт-09 (3)
    >[оверквотинг удален]
    >
    >        exit;
    >}
    >....
    >
    >И как вообще дебажить route-скрипт? Я понавтыкал повсюду эти xlog, но в
    >log-ах я соответсвующих записей не вижу. Что я делаю не так?
    >
    >
    >Заранее спасибо.

    Куда не кинь - повсюду баг на баге сидит и багом погоняет ... Оказался баг в движке (я использовал db_berkeley) при обработке BLOB-а, поэтому PUBLISH не заносился в таблицу presentity  (там body - это DB_BLOB), соответсвенно присутствие не показывалось. Патч отослал.

    Теперь, видимо, всплыл баг в linphone, поскольку он игнорит входящие NOTIFY с информацией о состоянии контакта ...

    Как же это достало :(

    • OpenSIPS - presence & IM, !*! geekkoo, 11:43 , 25-Мрт-09 (4)
      >[оверквотинг удален]
      >
      >Куда не кинь - повсюду баг на баге сидит и багом погоняет
      >... Оказался баг в движке (я использовал db_berkeley) при обработке BLOB-а,
      >поэтому PUBLISH не заносился в таблицу presentity  (там body -
      >это DB_BLOB), соответсвенно присутствие не показывалось. Патч отослал.
      >
      >Теперь, видимо, всплыл баг в linphone, поскольку он игнорит входящие NOTIFY с
      >информацией о состоянии контакта ...
      >
      >Как же это достало :(

      Вот оно - linphone нагло пишет в дебаг окне :

      message: Message sent: (to dest=192.168.1.252:5060)
      SIP/2.0 481 Subscription Does Not Exist

      Via: SIP/2.0/UDP 192.168.1.252;branch=z9hG4bK57d9.74410c6.0

      From: <sip:mike@xxxxxxx.ru>;tag=10.23257.1237968995.2

      To: <sip:mike@192.168.1.237>;tag=1553095454

      Call-ID: 2109597968

      CSeq: 3 NOTIFY

      User-Agent: Linphone/3.0.0 (eXosip2/3.1.0)

      Content-Length: 0


      Какое тебе, зараза, "Does Not Exist"!




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру