亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ua_appprobe.cpp

?? 改進后的SIP SERVICE API
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
#include <UA_AppProbe.hpp>
#include <SIP_MessageContainer.h>
#include <unistd.h>
#include <sys/time.h>
#include <UA_Session.hpp>
#include <iostream>
#include <memory>
#include <stdio.h>
#include "SIP_Probe.h"

extern int             G_reply;
extern int             G_time_wait;
extern int             G_trace;
extern int             G_closeMode;
extern int             G_Buggy_terminated;
extern int             G_destroy_on_unsubscribe;
extern int             G_snn_option;
extern int             G_subscribe;
extern int             G_new_call;
extern int             G_expires;
extern int             G_refer;
extern std::string     G_referTo;
extern int             G_reinvite;
extern int             G_stateless_messages;
extern char          * G_service_username;
extern int             G_nfinishedCalls;
extern int             G_silent;
extern sip_msg_uri_t * G_redir;
extern int             G_server_close;

const char * VP_control_event_to_string(int event)
{
  switch(event) {
  case FF_ID_UPDATE: return "FF_ID_UPDATE";
  case FF_SESS_MUST_BE_DELETED : return "FF_SESS_MUST_BE_DELETED";
  case FF_SESS_MUST_BE_DELETED_ON_ERR : return "FF_SESS_MUST_BE_DELETED_ON_ERR";
  case FF_SESS_WILL_BE_DELETED : return "FF_SESS_WILL_BE_DELETED";
  case FF_SESS_CALL_CREATION_FAIL : return "FF_SESS_CALL_CREATION_FAIL";
  case FF_SESS_LP_SENDING_FAIL : return "FF_SESS_LP_SENDING_FAIL";
  case FF_SESS_INVALID_PROV_CALLID : return "FF_SESS_INVALID_PROV_CALLID";
  case FF_SESS_B2B_PROXY_NO_INCCALL : return "FF_SESS_B2B_PROXY_NO_INCCALL";
  case FF_SESS_B2B_NOT_REQUEST : return "FF_SESS_B2B_NOT_REQUEST";
  case FF_SESS_PROV_CALLID_NOT_SET : return "FF_SESS_PROV_CALLID_NOT_SET";
  case FF_SESS_SAP_NOT_INITIALIZED : return "FF_SESS_SAP_NOT_INITIALIZED";
  case FF_SESS_INVALID_LPID : return "FF_SESS_INVALID_LPID";
  case FF_LP_BADLY_INITIALIZED : return "FF_LP_BADLY_INITIALIZED";
  case FF_LP_INTERNAL_ERR : return "FF_LP_INTERNAL_ERR";
  case FF_LP_DIALOG_RELEASE_ERR : return "FF_LP_DIALOG_RELEASE_ERR";
  case FF_LP_CALL_PROCESSING_ERROR : return "FF_LP_CALL_PROCESSING_ERROR";
  case FF_LP_DIALOG_PROCESSING_ERROR : return "FF_LP_DIALOG_PROCESSING_ERROR";
  case FF_LP_TRANS_PROCESSING_ERROR : return "FF_LP_TRANS_PROCESSING_ERROR";
  case FF_LP_SUBS_PROCESSING_ERROR : return "FF_LP_SUBS_PROCESSING_ERROR";
  case FF_LP_INVALID_PROV_CALLID : return "FF_LP_INVALID_PROV_CALLID";
  case FF_LP_INVALID_PROV_DIALOGID : return "FF_LP_INVALID_PROV_DIALOGID";
  case FF_LP_INVALID_PROV_TRANSID : return "FF_LP_INVALID_PROV_TRANSID";
  case FF_LP_INVALID_PROV_SUBSID : return "FF_LP_INVALID_PROV_SUBSID";
  case FF_LP_CALL_CREATION : return "FF_LP_CALL_CREATION";
  case FF_LP_DIALOG_CREATION : return "FF_LP_DIALOG_CREATION";
  case FF_LP_SUBS_CREATION : return "FF_LP_SUBS_CREATION";
  case FF_LP_MAXCALLS_REACHED : return "FF_LP_MAXCALLS_REACHED";
  case FF_LP_MAXDIALOGS_REACHED : return "FF_LP_MAXDIALOGS_REACHED";
  case FF_LP_MAXTRANS_REACHED : return "FF_LP_MAXTRANS_REACHED";
  case FF_LP_MAXSUBS_REACHED : return "FF_LP_MAXSUBS_REACHED";
  case FF_CALL_LOCAL_SRV_ERROR : return "FF_CALL_LOCAL_SRV_ERROR";
  case FF_CALL_TRANSACTION_DELETED : return "FF_CALL_TRANSACTION_DELETED";
  case FF_CALL_TRANSACTION_DELETED_INTERNAL :
    return "FF_CALL_TRANSACTION_DELETED_INTERNAL";
  case FF_CALL_DIALOG_DELETED : return "FF_CALL_DIALOG_DELETED";
  case FF_CALL_DIALOG_DELETED_INTERNAL :
    return "FF_CALL_DIALOG_DELETED_INTERNAL";
  case FF_CALL_DIALOG_DETAILED_REPORT :
    return "FF_CALL_DIALOG_DETAILED_REPORT";
  case FF_CALL_SUBSCRIPTION_DELETED : return "FF_CALL_SUBSCRIPTION_DELETED";
  case FF_CALL_SUBSCRIPTION_DELETED_INTERNAL :
    return "FF_CALL_SUBSCRIPTION_DELETED_INTERNAL";
  case FF_CALL_SUBSCRIPTION_TIMEOUT : return "FF_CALL_SUBSCRIPTION_TIMEOUT";
  case FF_CALL_REGISTRATION_DELETED : return "FF_CALL_REGISTRATION_DELETED";
  case FF_CALL_REGISTRATION_DELETED_INTERNAL :
    return "FF_CALL_REGISTRATION_DELETED_INTERNAL";
  case FF_UNKNOWN_ERROR : return "FF_UNKNOWN_ERROR";
  default:
    {
      static char value[10];
      sprintf(value, "--%d--", value);
      return value;
    }
  }
}

void print_message_info(sip_msg_message_t * L_Message_recv, 
                        const  char       * send_recv)
{
  if (G_trace >= 1) std::cerr << "== Entering print_message_info" << std::endl;
  if(G_silent) {
    return;
  }

  if (L_Message_recv == 0) {
    printf("Empty Message received\n");
    return;
  }
  
  char uri_string[255];
  
  int VI_index = sip_msg_find_and_parse_header
	(L_Message_recv -> headers,
	 SIP_MSG_HDR_FROM,
	 0, NULL);
  
  if(VI_index >= 0) {
    sip_msg_print_uri(L_Message_recv -> headers -> 
                      vector[VI_index] -> structured_header ->
                      content.from.uri, 
                      uri_string, 255, NULL);
  } else {
    uri_string[0] = 0;
  }

  
  if (L_Message_recv->kind==SIP_MSG_REQUEST) {
    
    if(uri_string[0]) {
      printf("%s %s from '%s'.\n",
             send_recv, 
             sip_msg_method_to_string
             (L_Message_recv->start_line.request.method,
              L_Message_recv->start_line.request.extension_method),
             uri_string);
    } else {
      printf("%s %s.\n",
             send_recv, 
             sip_msg_method_to_string
             (L_Message_recv->start_line.request.method,
              L_Message_recv->start_line.request.extension_method));
    }
  } else {
    printf("%s %d %s.\n",
           send_recv,
           L_Message_recv->start_line.response.status_code,
           L_Message_recv->start_line.response.reason_phrase ? 
           L_Message_recv->start_line.response.reason_phrase : "");
  }
  if (G_trace >= 1) std::cerr << "== EDN of print_message_info" << std::endl;
}

UA_AppProbe::UA_AppProbe
(const char* P_name, 
 const char* P_sipUserInfo, 
 const char* P_hostname, 
 const int P_port, 
 const SIP_TransportType P_trp, 
 const SIP_LogicalEntityType P_LE) 
  : /*probe(0),*/
    copyName("master"),
    SIP_AppProbe(P_name,
                 P_sipUserInfo, 
                 P_hostname, 
                 P_port, 
                 P_trp,
                 P_LE)
{
  if (G_trace >= 1)
    std::cerr <<"== UA_AppProbe:UA_AppProbe  constructor"  
              <<"\n== ---Probe Name         : " << P_name
              <<"\n== ---SIP User Info      : " << P_sipUserInfo
              <<"\n== ---hostname           : " << P_hostname
              <<"\n== ---port               : " << P_port
              <<"\n== ---SIP Logical Entity : " << P_LE
              <<"\n== ---SIP Transport Type : " << P_trp  << std::endl;
}

UA_AppProbe::UA_AppProbe (const char* P_name,const char * P_copyName)
  : /*probe(0),*/copyName(P_copyName),
    SIP_AppProbe(P_name)
{
  if (G_trace >= 1)
    std::cerr <<"== UA_AppProbe:UA_AppProbe  constructor"  
              <<"\n== ---Probe Name         : " << P_name 
              <<"\n== ---Probe copy Name         : " << copyName<< std::endl;
}

UA_AppProbe::~UA_AppProbe()
{
  if (G_trace >= 1)
    std::cerr << "== UASListeningPoint listening Point Name :"
              << getName() << std::endl ;
}


int UA_AppProbe::reportStateChanged (SIP_ProbeState P_newState, 
                                     SIP_Cause P_cause) throw ()
{
  if (G_trace >= 1)
    std::cerr << "==  UA_AppProbe::reportStateChanged new state is [" 
              << P_newState << "], cause [" << P_cause << "]" <<std::endl;
  return 0;
}


int UA_AppProbe::sendSubscriptionMessage(SIP_Service& P_service, 
                                         UA_Session&  P_session, 
                                         SIP_Event&   P_message)
{
  if (G_trace >= 1)
    std::cerr <<"== myAppProbeClient::sendSubscriptionMessage"<<std::endl;
  std::string L_transport;
  
  if (getTransport() == SIP_TRANSPORT_TCP)
    L_transport = "tcp";
  else
    L_transport = "udp";
      
  SIP_MessageContainer* L_event = 0;

  // derivated from vbo sample code
  sip_msg_header_t * L_eventhdr = 0;
  sip_msg_header_t * L_expires  = 0;

  sip_msg_message_t * l_sipRequest = 0;
		
  sip_msg_header_vector_t * L_headerVector = 0;
		
  sip_status_t L_sip_rc;
  sip_msg_error_t error;
  
  L_headerVector = sip_msg_new_header_vector (&error);

  if (!L_headerVector)
    {
      std::cerr <<"== Unable to build the header vector"<<std::endl;
      return -1;
    }
		
  static int L_id = 0;
  char       L_idstr[10];
  L_id++;
 
  sprintf(L_idstr, "%d", L_id);
 
  L_eventhdr = sip_msg_new_event_header((char *)"TESTEVENT",
                                        L_idstr,
                                        NULL,
                                        NULL);    
  if(!L_eventhdr) 
    {
      std::cerr <<"== Unable to build the event: header\n"<<std::endl;
      return -1;
    }

  L_sip_rc = sip_msg_insert_header (L_headerVector,L_eventhdr,-1);
  if (L_sip_rc != SIP_NORMAL)
    {
      std::cerr << "==  Unable to insert header to "
                <<error.unexpected_token<<std::endl;
      return -1;
    }

  L_expires = sip_msg_new_expires_header(G_expires,
                                         NULL,
                                         NULL);
  if(!L_expires) 
    {
      std::cerr <<"== Unable to build the expires: header\n"<<std::endl;
      return -1;
    }

  L_sip_rc = sip_msg_insert_header (L_headerVector,L_expires,-1);
  if (L_sip_rc != SIP_NORMAL)
    {
      std::cerr << "==  Unable to insert header to "
                <<error.unexpected_token<<std::endl;
      return -1;
    }
    
  l_sipRequest = sip_msg_new_request 
    (SIP_MSG_SUBSCRIBE,
     (sip_msg_uri_s *)P_session.getReqUri(),
     NULL,
     L_headerVector,
     0,
     0,
     0,
     &error );
  
  if (!l_sipRequest)
    {
      std::cerr <<"== Unable to build new Request "
                <<error.unexpected_token<<std::endl;
      return -1;
    }

  L_event = new SIP_MessageContainer;
  L_event->setPayload(l_sipRequest);
  L_event->setCallId(FF_Identifier(1,P_session.getProviderCallId()));
  L_event->setDialogId(FF_Identifier(1,P_session.getProviderDialogId()));
  L_event->setTransactionId(FF_Identifier(1,-1));
  L_event->setSubscriptionId(FF_Identifier(1,-1));  

  print_message_info(l_sipRequest, "Sending");

  getProbe().send(P_service,P_session,*L_event);
  return 0;

}


int UA_AppProbe::ProcessSubscriptionMessage(SIP_Service& P_service, 
                                            SIP_Session& P_session, 
                                            SIP_Event&   P_message)
{					    
  int                      VB_message_processed  = -1;
  int                      VI_header_index       = -1;
  int                      VB_unsubscribe        = 0;
  sip_msg_header_t       * VP_event_header       = NULL;
  sip_msg_header_t       * VP_expires_header     = NULL;
  sip_msg_header_t       * VP_contact_header     = NULL;
  sip_msg_message_t      * VP_Message_rsp        = NULL;
  sip_msg_message_t      * VP_Message_recv       = NULL;
  sip_msg_header_t       * VP_subscription_state = NULL;
  SIP_Event              * L_response            = NULL;
  SIP_Status               status;
    if (G_trace >= 1)
    std::cerr <<"== myAppProbeClient::sendSubscriptionMessage"<<std::endl;
	
  FF_SipMessageContainer & VP_RecvEvent = 
    dynamic_cast <FF_SipMessageContainer&>(P_message);
  VP_Message_recv = VP_RecvEvent.getPayload();
  
  try {
    
    if (VP_Message_recv->kind==SIP_MSG_REQUEST) {
      
      VP_event_header = VP_Message_recv -> headers -> vector
        [sip_msg_find_and_parse_header
         (VP_Message_recv -> headers,
          SIP_MSG_HDR_EVENT,
          0, NULL)];
      
      VI_header_index = sip_msg_find_and_parse_header
        (VP_Message_recv -> headers,
         SIP_MSG_HDR_CONTACT,
         0, NULL);
      
      if (VI_header_index != -1)
        {
          VP_contact_header = 
            VP_Message_recv -> headers -> vector[VI_header_index];
        }    
      
      switch(VP_Message_recv->start_line.request.method) {
	
      case SIP_MSG_SUBSCRIBE: {

        char from_string[255];
	  
        VB_message_processed = 1;
	  
        sip_msg_header_t * from_header  = VP_Message_recv -> headers -> 
          vector[sip_msg_find_and_parse_header
                 (VP_Message_recv -> headers,
                  SIP_MSG_HDR_FROM,
                  0, NULL)];
	  
        if(sip_msg_print_header(from_header, 
                                from_string, 255, SIP_FALSE, NULL) > 0) {

          if (G_trace >= 1) {
            fprintf(stderr, 
                    "== SUBSCRIBE for event '%s' received from %s.\n",
                    VP_event_header -> structured_header -> 
                    content.event.event_type,
                    from_string);
          }
        }

        VI_header_index = sip_msg_find_and_parse_header
          (VP_Message_recv -> headers,
           SIP_MSG_HDR_EXPIRES,
           0, NULL);	  
        if(VI_header_index >= 0) {
          VP_expires_header = 
            VP_Message_recv -> headers -> vector[VI_header_index];
          if (G_trace >= 1) {
            fprintf(stderr, "== Expires = %d.\n", 
                    VP_expires_header -> structured_header ->
                    content.expires.delta_seconds);
          }
          if(VP_expires_header -> structured_header ->

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜电影一区二区三区| 91无套直看片红桃| 国产麻豆日韩欧美久久| 亚洲国产激情av| 宅男在线国产精品| 日韩欧美成人一区| 99riav久久精品riav| 成人高清av在线| 麻豆精品久久久| 成人在线一区二区三区| 91精品国产综合久久久久久| 欧美大片国产精品| 国产亚洲一二三区| 亚洲黄网站在线观看| 91免费版在线| 亚洲专区一二三| 秋霞电影网一区二区| 久久成人18免费观看| 99久久精品免费看| 亚洲国产成人午夜在线一区| 中文成人综合网| 一区二区三区国产| 3atv在线一区二区三区| 久久综合精品国产一区二区三区 | 丰满岳乱妇一区二区三区| 久久成人免费网站| 欧美色老头old∨ideo| 亚洲一区二区精品久久av| 日韩av电影免费观看高清完整版 | 日韩精品一区二区三区三区免费| 国产精品伦一区二区三级视频| 欧美高清视频一二三区| 亚洲日本护士毛茸茸| 一区二区三区影院| 成人黄页在线观看| 日韩亚洲欧美一区| 老司机精品视频线观看86| 国产清纯美女被跳蛋高潮一区二区久久w | 夜夜操天天操亚洲| 9色porny自拍视频一区二区| 欧美三级在线看| 中文字幕一区二区三| av在线播放不卡| 国产丝袜欧美中文另类| 婷婷亚洲久悠悠色悠在线播放 | 欧美三级中文字幕在线观看| 久久99国产精品久久99| 久久这里只有精品6| 成人免费在线视频观看| 欧美日韩亚洲另类| 日韩国产精品久久久久久亚洲| 欧洲激情一区二区| 韩国一区二区在线观看| 午夜精品久久久久久久久| 日韩一区二区三区视频| 久久99精品国产91久久来源| 国产精品私人影院| 欧美无砖专区一中文字| 国产乱码精品一区二区三区五月婷| 337p亚洲精品色噜噜噜| 精品中文字幕一区二区| 日韩欧美自拍偷拍| 不卡视频在线观看| 视频在线观看一区| 亚洲欧美国产毛片在线| 欧美一区二区三区在线| 91伊人久久大香线蕉| 国产一区二区精品久久| 艳妇臀荡乳欲伦亚洲一区| 久久久久久免费| 欧美日韩国产一二三| 国产高清不卡二三区| 国产aⅴ精品一区二区三区色成熟| 国产精品亚洲专一区二区三区 | 亚洲一线二线三线久久久| 欧美日本国产视频| 大胆欧美人体老妇| 日韩中文字幕亚洲一区二区va在线| 日韩理论电影院| 精品成人私密视频| 91成人免费在线| 成人免费精品视频| 男人操女人的视频在线观看欧美| 精品国产乱码91久久久久久网站| 在线精品观看国产| 99国产精品国产精品久久| 国产精品主播直播| 日韩专区在线视频| 亚洲h精品动漫在线观看| 亚洲另类在线一区| 国产精品视频yy9299一区| 久久久久久久一区| 精品欧美一区二区三区精品久久| 色婷婷综合中文久久一本| 不卡视频一二三四| 99九九99九九九视频精品| 欧美在线观看视频一区二区三区| 欧洲另类一二三四区| 日韩一级免费一区| 欧美夫妻性生活| 日韩精品中文字幕在线一区| 中文字幕欧美三区| 亚洲一区二区美女| 视频一区二区三区入口| 国产福利一区二区三区在线视频| 色综合天天性综合| 欧美日韩三级视频| 久久色视频免费观看| 久久久美女毛片| 国产精品进线69影院| 日韩中文字幕麻豆| 99riav一区二区三区| 在线成人高清不卡| 亚洲免费伊人电影| 亚洲综合男人的天堂| 久久99精品久久久| 91免费小视频| 欧美日韩激情一区| 亚洲精品国产a久久久久久| 成人免费不卡视频| 91国模大尺度私拍在线视频| 欧美日韩一本到| 亚洲综合激情网| 欧美视频一区二区三区四区| 国产精品另类一区| 麻豆国产精品官网| av不卡一区二区三区| 欧美一区二区黄色| 欧美高清性hdvideosex| 亚洲日本在线天堂| 欧美日韩高清不卡| 亚洲国产成人精品视频| www.亚洲人| 亚洲福利一区二区三区| 成人福利视频在线| 亚洲国产裸拍裸体视频在线观看乱了 | 久久亚洲综合av| 一区二区三区四区五区视频在线观看 | 久久综合色鬼综合色| 久久精品国产一区二区三| 在线成人免费视频| 不卡视频免费播放| 亚洲欧美国产高清| 在线观看国产91| 亚洲成人免费影院| 精品欧美一区二区久久| www.亚洲免费av| 蜜乳av一区二区| 久久99精品久久久久| 一区二区三区毛片| 制服丝袜av成人在线看| 99久久精品免费| 91视视频在线观看入口直接观看www| 亚洲成a人v欧美综合天堂下载 | 不卡av在线免费观看| 国产精品一区在线观看乱码 | 亚洲成人综合视频| 欧美刺激午夜性久久久久久久| av电影天堂一区二区在线观看| 色综合天天综合网天天看片| 一区精品在线播放| 欧美大黄免费观看| 日韩欧美成人午夜| 久久久久久久久伊人| 91久久精品网| 成人午夜在线视频| 欧美日韩精品欧美日韩精品 | 欧美精品 日韩| 色噜噜久久综合| 欧美精品三级日韩久久| 国产成a人亚洲精| 成人av免费在线观看| 欧美日韩大陆在线| 91精品欧美福利在线观看| 日韩欧美一级二级| 精品久久久久久无| 国产日韩精品一区二区浪潮av| 日本一二三不卡| 国产清纯白嫩初高生在线观看91 | 亚洲四区在线观看| 精品裸体舞一区二区三区| 中文字幕在线一区二区三区| 亚洲一区二区高清| 北岛玲一区二区三区四区| 99国产精品久久久| 91国在线观看| 国产精品久久久久久妇女6080| 亚洲综合激情另类小说区| 免费在线看成人av| 色偷偷成人一区二区三区91| 久久综合资源网| 国产在线精品视频| 欧美日韩国产首页| 久久久亚洲欧洲日产国码αv| 午夜精品久久久久久久久| 国产精品主播直播| 26uuu亚洲综合色| 国产精品超碰97尤物18| 日韩高清一区二区| 欧美三级中文字|