当调用eXosip_listen_addr开始创建线程接收SIP报文,并且里面处理,底层存在一个状态机的机制,接下来调用eXosip_event_wait函数进行事件的处理 eXosip_event_t * eXosip_event_wait (struct eXosip_t * excontext, int tv_s, int tv_ms) je = (eXosip_event_t *) osip_fifo_tryget (excontext->j_...
前几天编程虽然一直都成功,但是有个问题就是我们总是在重复开启eXosip_event_wait(0,50)函数,现在打算围绕eXosip_event_wait展开,即eXosip_event_wait一直处以循环跑。 ---海xx程序研究--- 参看下海xx的程序,是如下所示的,在imsUA.c中的main函数中有如下函数: g_timeout_add ...
eXosip_event_t *je; char display[500] = ""; eXosip_lock(); eXosip_unlock(); if((je = eXosip_event_wait(0,50)) != NULL) { // fprintf(stderr, "Event type:%d %s\n", je->type,je->textinfo); imsua_display_event_info(je); if (je->type== EXOSIP_CALL_INVITE) { im...
eXosip_event_t *je; char display[500] = ""; eXosip_lock(); eXosip_unlock(); if((je = eXosip_event_wait(0,50)) != NULL) { // fprintf(stderr, "Event type: %d %s\n", je->type, je->textinfo); imsua_display_event_info(je); if (je->type == EXOSIP_CALL_INVITE) ...
1)eXosip_init(初始化)|v2)eXosip_listen_addr(监听sip端口)|v3)eXosip_register_build_initial_register(构建一个register)|v4)eXosip_register_send_register(发送register)|v5)eXosip_event_wait(等待对端事件)|v6)eXosip_execute(处理事件,调整内部状态)//省略此步|v7)eXosip_automatic_action(根据当...
这个测试程序是从eXosip原有的测试程序改造的。原程序是tools 目录下的 sip_reg.c 本程序主要改造了这几个地方: 1) eXosip_event_wait() 函数的超时时间,从原来的1ms 修改为50ms 2) 对于初次注册时,服务器返回401的情况。 调用函数 eXosip_add_authentication_info()发送鉴权信息。
处理SIP请求和响应:使用eXosip_event_wait函数来等待SIP请求或响应,并使用eXosip_event_t结构体来处理它们。 eXosip_event_t *evt = NULL; while (1) { evt = eXosip_event_wait(0, 100); if (evt == NULL) { continue; } switch (evt->type) { case EXOSIP_CALL_INVITE: // 处理呼叫邀请...
处理SIP事件:通过调用exosip_event_wait()函数等待SIP事件的到来,并使用exosip_event_get()函数获取最新的SIP事件。 处理SIP消息:通过检查SIP事件的类型和子类型,可以确定接收到的SIP消息的类型,并使用相应的API函数进行处理。 发送SIP消息:使用exosip_call_build_request()函数构建SIP请求消息,并使用exosip_call...
2)eXosip_event_wait(0, WAIT_TIME );中的WAIT_TIME不要过小,否则在exosip工作时的定时器时间偏差会越来越大,没有太深入看过exosip和osip的源码,感觉可能是频繁的中断造成误差。 3) exosip处理有关401和407的错误,可以简单的用下面的函数:
eXosip_event_wait(struct eXosip_t *excontext, int tv_s, int tv_ms) eXosip_event_t* eXosip_event_get(struct eXosip_t *excontext) int eXosip_event_geteventsocket(struct eXosip_t *excontext) Detailed Description Enumeration Type Documentation ...