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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 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 ->

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩视频123| 国产91精品久久久久久久网曝门| 91色.com| 一区二区久久久久| 欧美疯狂做受xxxx富婆| 日韩在线一区二区| 精品国产91乱码一区二区三区| 久草这里只有精品视频| 久久综合九色欧美综合狠狠| 成人午夜大片免费观看| 一区二区三区四区国产精品| 欧美日本国产视频| 精彩视频一区二区| 亚洲欧洲av色图| 欧美中文字幕不卡| 国产一区欧美一区| 中文字幕在线不卡| 欧美日韩综合一区| 国产剧情一区在线| 亚洲欧美一区二区三区极速播放| 一本色道久久综合亚洲精品按摩| 午夜视频在线观看一区二区三区| 日韩精品一区二区三区视频| 国产成人一级电影| 亚洲国产精品久久艾草纯爱| 337p日本欧洲亚洲大胆精品| 色拍拍在线精品视频8848| 日av在线不卡| 亚洲欧美在线视频观看| 91精品国产一区二区三区香蕉| 国产成人在线色| 日本最新不卡在线| 国产精品家庭影院| 日韩精品中午字幕| 91色乱码一区二区三区| 久久99久久精品| 一区二区三区**美女毛片| 久久一区二区三区四区| 欧美精品日韩综合在线| 成人国产亚洲欧美成人综合网| 日本欧美久久久久免费播放网| 中文字幕在线一区二区三区| 日韩视频一区二区三区在线播放| 91麻豆国产在线观看| 国产一区二区三区精品视频| 午夜精品久久久久| 亚洲欧美成aⅴ人在线观看| 久久色中文字幕| 91精品国产综合久久精品麻豆| 99国产精品一区| 国产福利精品导航| 蜜乳av一区二区| 午夜精品久久久久久久久| 国产精品盗摄一区二区三区| 久久综合视频网| 日韩三级视频在线观看| 欧美性受xxxx黑人xyx性爽| av电影一区二区| 成人精品一区二区三区四区| 精品一区二区三区av| 麻豆免费看一区二区三区| 亚洲色图视频网站| 国产欧美精品在线观看| 久久欧美一区二区| 欧美va亚洲va香蕉在线| 91精品国产综合久久久久久久久久 | 日韩久久久精品| 91超碰这里只有精品国产| 欧美私人免费视频| 91久久一区二区| 在线亚洲人成电影网站色www| www.日韩精品| 91丨九色丨黑人外教| 91麻豆国产福利在线观看| 成人高清在线视频| 色综合久久中文字幕| 99精品久久久久久| 91免费看视频| 色94色欧美sute亚洲13| 在线影视一区二区三区| 在线观看一区日韩| 欧美天堂亚洲电影院在线播放| 在线观看亚洲成人| 欧美日韩国产欧美日美国产精品| 欧美三级日本三级少妇99| 欧美日韩综合在线免费观看| 在线观看91精品国产麻豆| 欧美一区二区三区四区视频| 日韩一二三区视频| 久久久久国产精品免费免费搜索| 日本一区二区三区在线不卡 | 成人欧美一区二区三区| 亚洲欧洲日产国码二区| 亚洲韩国一区二区三区| 视频一区二区国产| 久久www免费人成看片高清| 国产成a人亚洲精品| 一本大道av伊人久久综合| 欧美图片一区二区三区| 日韩美女一区二区三区| 国产精品久久久久影院色老大| 亚洲日本丝袜连裤袜办公室| 亚洲成av人片一区二区| 激情综合五月天| av网站一区二区三区| 欧美电影影音先锋| 欧美激情一区二区在线| 亚洲综合色区另类av| 久久国产精品第一页| 99re热这里只有精品免费视频| 欧美日韩精品欧美日韩精品一| 精品久久五月天| 亚洲视频中文字幕| 美女被吸乳得到大胸91| 91社区在线播放| 精品日韩欧美在线| 玉米视频成人免费看| 精品在线视频一区| 欧美亚洲国产一区在线观看网站| 欧美成人乱码一区二区三区| 亚洲欧美色一区| 激情五月激情综合网| 欧美性色黄大片| 国产嫩草影院久久久久| 男人的j进女人的j一区| 99精品视频中文字幕| 精品久久99ma| 亚洲一区国产视频| 国产91露脸合集magnet| 91精品国产福利| 一区二区三区四区激情| 成人小视频在线观看| 欧美岛国在线观看| 亚洲成a天堂v人片| 99久久精品费精品国产一区二区| 精品日韩一区二区三区免费视频| 亚洲一区二区三区在线| 美女视频一区二区三区| 久久久久久久精| 午夜成人免费视频| www.在线欧美| 国产视频一区二区在线| 秋霞国产午夜精品免费视频| 一本一本大道香蕉久在线精品 | 精品美女在线播放| 一区二区三区资源| 不卡欧美aaaaa| 久久久久久久国产精品影院| 免费观看在线色综合| 欧美视频日韩视频| 亚洲乱码精品一二三四区日韩在线| 国产v综合v亚洲欧| 久久久精品蜜桃| 极品少妇一区二区三区精品视频| 91精品国产综合久久福利| 亚洲午夜精品在线| 欧美亚洲动漫精品| 亚洲国产日韩a在线播放性色| 91欧美一区二区| 亚洲免费大片在线观看| 99在线精品观看| 亚洲人成亚洲人成在线观看图片| 国产精品911| 国产午夜精品美女毛片视频| 99热精品国产| 97精品视频在线观看自产线路二| 国产亚洲精品bt天堂精选| 国产麻豆9l精品三级站| 精品国产精品网麻豆系列| 久久av资源网| 久久久久久久一区| 国产高清精品久久久久| 欧美激情艳妇裸体舞| 丁香婷婷深情五月亚洲| 国产精品毛片无遮挡高清| 97久久超碰国产精品| 一区二区三区欧美日| 欧美久久久一区| 毛片av一区二区| 久久九九久久九九| 99久久免费精品| 亚洲va欧美va人人爽| 欧美一区二区视频在线观看2020 | 亚洲精选视频在线| 欧美最新大片在线看| 日韩va欧美va亚洲va久久| 精品国一区二区三区| 成人免费三级在线| 亚洲色图视频免费播放| 欧美高清dvd| 国产伦精一区二区三区| ...av二区三区久久精品| 欧美在线三级电影| 欧美成人精品福利| 韩国av一区二区三区在线观看| 久久蜜桃一区二区| 91丨porny丨户外露出| 五月天网站亚洲| 久久久www成人免费无遮挡大片| 成人教育av在线|