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

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

?? sip_reg.c

?? exosip
?? C
字號:
/* * SIP Registration Agent -- by ww@styx.org *  * This program is Free Software, released under the GNU General * Public License v2.0 http://www.gnu.org/licenses/gpl * * This program will register to a SIP proxy using the contact * supplied on the command line. This is useful if, for some  * reason your SIP client cannot register to the proxy itself. * For example, if your SIP client registers to Proxy A, but * you want to be able to recieve calls that arrive at Proxy B, * you can use this program to register the client's contact * information to Proxy B. * * This program requires the eXosip library. To compile, * assuming your eXosip installation is in /usr/local, * use something like: * * gcc -O2 -I/usr/local/include -L/usr/local/lib sipreg.c \ *         -o sipreg \ *         -leXosip2 -losip2 -losipparser2 -lpthread * * It should compile and run on any POSIX compliant system * that supports pthreads. * */#if defined(__arc__)#define LOG_PERROR 1#include <includes_api.h>#include <os_cfg_pub.h>#endif#if !defined(WIN32) && !defined(_WIN32_WCE)#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <netdb.h>#include <syslog.h>#ifdef OSIP_MT#include <pthread.h>#endif#endif#ifdef _WIN32_WCE/* #include <syslog.h> */#include <winsock2.h>#endif#include <osip2/osip_mt.h>#include <eXosip2/eXosip.h>#if !defined(WIN32) && !defined(_WIN32_WCE) && !defined(__arc__)#define _GNU_SOURCE#include <getopt.h>#endif#define PROG_NAME "sipreg"#define PROG_VER  "1.0"#define UA_STRING "SipReg v" PROG_VER#define SYSLOG_FACILITY LOG_DAEMON#if defined(WIN32) || defined(_WIN32_WCE)static void syslog_wrapper(int a, const char *fmt, ...){  va_list args;  va_start (args, fmt);  vfprintf (stdout, fmt, args);  va_end (args);}#define LOG_INFO 0#define LOG_ERR 0#define LOG_WARNING 0#define LOG_DEBUG 0#elif defined(LOG_PERROR)/* If we can, we use syslog() to emit the debugging messages to stderr. */#define syslog_wrapper    syslog#else#define syslog_wrapper(a,b...) fprintf(stderr,b);fprintf(stderr,"\n")#endifstatic void usage (void);#ifdef OSIP_MTstatic void *register_proc (void *arg);#endifstatic voidusage (void){  printf ("Usage: " PROG_NAME " [required_options] [optional_options]\n"          "\n\t[required_options]\n"          "\t-r --proxy\tsip:proxyhost[:port]\n"          "\t-u --from\tsip:user@host[:port]\n"          "\n\t[optional_options]\n"          "\t-c --contact\tsip:user@host[:port]\n"          "\t-d --debug (log to stderr and do not fork)\n"          "\t-e --expiry\tnumber (default 3600)\n"          "\t-f --firewallip\tN.N.N.N\n"          "\t-h --help\n"          "\t-l --localip\tN.N.N.N (force local IP address)\n"          "\t-p --port\tnumber (default 5060)\n"          "\t-U --username\tauthentication username\n"          "\t-P --password\tauthentication password\n");}typedef struct regparam_t{  int regid;  int expiry;  int auth;} regparam_t;#ifdef OSIP_MTstatic void *register_proc (void *arg){  struct regparam_t *regparam = arg;  int reg;  for (;;)    {#ifdef _WIN32_WCE      Sleep ((regparam->expiry / 2)*1000);#else      sleep (regparam->expiry / 2);#endif      eXosip_lock ();      reg = eXosip_register_send_register (regparam->regid, NULL);      if (0 > reg)        {#ifdef _WIN32_WCE          fprintf(stdout, "eXosip_register: error while registring");#else          perror ("eXosip_register");#endif          exit (1);	  }      regparam->auth = 0;      eXosip_unlock ();    }  return NULL;}#endif#ifdef _WIN32_WCEint WINAPI WinMain(	HINSTANCE hInstance,					HINSTANCE hPrevInstance,					LPTSTR    lpCmdLine,					int       nCmdShow)#elseint main (int argc, char *argv[])#endif{  int c;  int port = 5060;  char *contact = NULL;  char *fromuser = NULL;  const char *localip = NULL;  const char *firewallip = NULL;  char *proxy = NULL;#if !defined(__arc__)  struct servent *service;#endif  char *username = NULL;  char *password = NULL;  struct regparam_t regparam = { 0, 3600, 0 };#ifdef OSIP_MT  struct osip_thread *register_thread;#endif  int debug = 0;  int nofork = 0;#ifdef _WIN32_WCE  proxy = osip_strdup("sip:sip.antisip.com");  fromuser = osip_strdup("sip:jack@sip.antisip.com");#else  for (;;)    {#define short_options "c:de:f:hl:p:r:u:U:P:"#ifdef _GNU_SOURCE      int option_index = 0;      static struct option long_options[] = {        {"contact", required_argument, NULL, 'c'},        {"debug", no_argument, NULL, 'd'},        {"expiry", required_argument, NULL, 'e'},        {"firewallip", required_argument, NULL, 'f'},        {"from", required_argument, NULL, 'u'},        {"help", no_argument, NULL, 'h'},        {"localip", required_argument, NULL, 'l'},        {"port", required_argument, NULL, 'p'},        {"proxy", required_argument, NULL, 'r'},        {"username", required_argument, NULL, 'U'},        {"password", required_argument, NULL, 'P'},        {NULL, 0, NULL, 0}      };      c = getopt_long (argc, argv, short_options, long_options, &option_index);#else      c = getopt (argc, argv, short_options);#endif      if (c == -1)        break;      switch (c)        {          case 'c':            contact = optarg;            break;          case 'd':            nofork = 1;#ifdef LOG_PERROR            debug = LOG_PERROR;#endif            break;          case 'e':            regparam.expiry = atoi (optarg);            break;          case 'f':            firewallip = optarg;            break;          case 'h':            usage ();            exit (0);          case 'l':            localip = optarg;            break;          case 'p':#if !defined(__arc__)            service = getservbyname (optarg, "udp");            if (service)              port = ntohs(service->s_port);            else              port = atoi (optarg);#else	    port = atoi (optarg);#endif            break;          case 'r':            proxy = optarg;            break;          case 'u':            fromuser = optarg;            break;          case 'U':	    username = optarg;            break;          case 'P':	    password = optarg;            break;          default:            break;        }    }#endif  if (!proxy || !fromuser)    {      usage ();      exit (1);    }#ifndef _WIN32_WCE  if (!nofork)    {      int cpid = fork ();      if (cpid)                 /* parent */        exit (0);      /* child */      close (0);      close (1);      close (2);    }#endif#if 0  openlog (PROG_NAME, LOG_PID | debug, SYSLOG_FACILITY);#endif  syslog_wrapper (LOG_INFO, UA_STRING " up and running");  syslog_wrapper (LOG_INFO, "proxy: %s", proxy);  syslog_wrapper (LOG_INFO, "fromuser: %s", fromuser);  syslog_wrapper (LOG_INFO, "contact: %s", contact);  syslog_wrapper (LOG_INFO, "expiry: %d", regparam.expiry);  syslog_wrapper (LOG_INFO, "local port: %d", port);  if (debug>0)    TRACE_INITIALIZE (6, NULL);  if (eXosip_init ())    {      syslog_wrapper (LOG_ERR, "eXosip_init failed");      exit (1);    }  if (eXosip_listen_addr (IPPROTO_UDP, NULL, port, AF_INET, 0))    {      syslog_wrapper (LOG_ERR, "eXosip_listen_addr failed");      exit (1);    }  if (localip)    {      syslog_wrapper (LOG_INFO, "local address: %s", localip);      eXosip_masquerade_contact (localip, port);    }  if (firewallip)    {      syslog_wrapper (LOG_INFO, "firewall address: %s:%i", firewallip, port);      eXosip_masquerade_contact (firewallip, port);    }  eXosip_set_user_agent (UA_STRING);  if (username && password)    {      syslog_wrapper (LOG_INFO, "username: %s", username);      syslog_wrapper (LOG_INFO, "password: [removed]");      if (eXosip_add_authentication_info          (username, username, password, NULL, NULL))        {          syslog_wrapper (LOG_ERR, "eXosip_add_authentication_info failed");          exit (1);        }    }  {    osip_message_t *reg = NULL;    int i;    regparam.regid =      eXosip_register_build_initial_register (fromuser, proxy, contact, regparam.expiry*2,                                              &reg);    if (regparam.regid < 1)      {        syslog_wrapper (LOG_ERR, "eXosip_register_build_initial_register failed");        exit (1);      }    i = eXosip_register_send_register (regparam.regid, reg);    if (i != 0)      {        syslog_wrapper (LOG_ERR, "eXosip_register_send_register failed");        exit (1);      }  }#ifdef OSIP_MT  register_thread = osip_thread_create (20000, register_proc, &regparam);  if (register_thread==NULL)    {      syslog_wrapper (LOG_ERR, "pthread_create failed");      exit (1);    }#endif  for (;;)    {      eXosip_event_t *event;      if (!(event = eXosip_event_wait (0, 1)))        {#ifndef OSIP_MT	  eXosip_execute();	  eXosip_automatic_action ();#endif          osip_usleep (10000);          continue;        }#ifndef OSIP_MT      eXosip_execute();#endif      eXosip_automatic_action ();      switch (event->type)        {          case EXOSIP_REGISTRATION_NEW:            syslog_wrapper (LOG_INFO, "received new registration");            break;          case EXOSIP_REGISTRATION_SUCCESS:            syslog_wrapper (LOG_INFO, "registrered successfully");            break;          case EXOSIP_REGISTRATION_FAILURE:            regparam.auth = 1;            break;          case EXOSIP_REGISTRATION_TERMINATED:            printf ("Registration terminated\n");            break;          default:            syslog_wrapper (LOG_DEBUG,                            "recieved unknown eXosip event (type, did, cid) = (%d, %d, %d)",                            event->type, event->did, event->cid);        }      eXosip_event_free (event);    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕综合网| eeuss影院一区二区三区| 国产精品久久久久久久久免费丝袜| 在线播放欧美女士性生活| 色www精品视频在线观看| bt7086福利一区国产| 成人精品gif动图一区| 国产成人精品一区二| 福利一区二区在线观看| 国产91丝袜在线观看| 成人一级黄色片| 99久久久久久| 91久久人澡人人添人人爽欧美 | 亚洲精品高清视频在线观看| 国产精品丝袜一区| 自拍偷拍亚洲欧美日韩| 亚洲一区在线观看免费 | 欧美一区二区女人| 欧美mv日韩mv亚洲| 久久精品一区四区| 久久久精品免费免费| 国产精品欧美一级免费| 亚洲乱码国产乱码精品精可以看 | 五月婷婷综合网| 日韩精品国产精品| 国产美女娇喘av呻吟久久| 丁香婷婷综合网| 一本一道综合狠狠老| 欧美日韩国产片| 精品久久国产字幕高潮| 国产日韩欧美亚洲| 亚洲一区二区三区美女| 热久久免费视频| 成人激情开心网| 欧美三日本三级三级在线播放| 欧美高清激情brazzers| 国产亚洲精品aa| 一区二区三区四区五区视频在线观看| 五月激情综合婷婷| 从欧美一区二区三区| 欧美揉bbbbb揉bbbbb| 久久久不卡网国产精品二区| 亚洲制服丝袜在线| 国产一区二区免费视频| 欧美在线综合视频| 国产女同性恋一区二区| 午夜伦欧美伦电影理论片| 国产999精品久久| 制服.丝袜.亚洲.另类.中文| 国产精品你懂的| 美国一区二区三区在线播放| 99re在线精品| 久久久五月婷婷| 日韩国产欧美在线播放| 色综合一区二区三区| 国产亚洲一区二区在线观看| 午夜精品aaa| 91免费在线看| 欧美精彩视频一区二区三区| 日韩成人一区二区三区在线观看| av一区二区三区在线| 久久综合狠狠综合久久激情| 亚洲国产色一区| 色综合天天综合在线视频| 日本一区二区久久| 国内精品写真在线观看| 91精品国产综合久久精品| 亚洲黄色免费电影| 91美女精品福利| 中文字幕亚洲欧美在线不卡| 精久久久久久久久久久| 欧美一区二区三区四区视频| 亚洲国产乱码最新视频| 91国偷自产一区二区使用方法| 国产欧美精品在线观看| 国产传媒欧美日韩成人| 久久综合成人精品亚洲另类欧美| 天天影视网天天综合色在线播放| 一本色道久久综合亚洲aⅴ蜜桃 | 亚洲国产成人av| 91小视频在线免费看| 国产精品成人在线观看| 成人视屏免费看| 欧美激情一区二区三区在线| 国产成人精品亚洲日本在线桃色| 精品三级av在线| 国精产品一区一区三区mba桃花 | 精品免费视频一区二区| 美日韩黄色大片| 精品盗摄一区二区三区| 国产精品一区二区三区网站| 久久久蜜臀国产一区二区| 国产一区二区三区不卡在线观看 | 99久久精品免费观看| 亚洲桃色在线一区| 在线亚洲欧美专区二区| 天堂蜜桃一区二区三区| 日韩欧美一区在线| 国产一区二区免费视频| 亚洲欧洲美洲综合色网| 欧洲视频一区二区| 麻豆精品视频在线观看免费| 久久人人爽爽爽人久久久| 国产精品538一区二区在线| 国产精品福利影院| 欧美丝袜自拍制服另类| 免费观看成人av| 国产精品美女视频| 欧美最新大片在线看| 麻豆国产精品官网| 中文字幕一区二区三| 在线精品国精品国产尤物884a | 日韩欧美一级二级三级久久久| 国产精品18久久久久久vr| 亚洲免费在线视频一区 二区| 欧美日韩性生活| 粉嫩久久99精品久久久久久夜| 亚洲精品欧美二区三区中文字幕| 欧美精品久久99久久在免费线| 国产精品中文字幕日韩精品 | 欧美变态口味重另类| 成人午夜激情视频| 日韩黄色片在线观看| 中文字幕免费一区| 欧美一区二区大片| 一本久久精品一区二区| 国产制服丝袜一区| 午夜精品影院在线观看| 中文字幕欧美国产| 日韩精品一区二区三区老鸭窝 | 亚洲一区二区三区四区在线免费观看| 日韩精品一区二区在线观看| 91色婷婷久久久久合中文| 九九精品视频在线看| 亚洲午夜在线电影| 国产精品久线在线观看| 久久久影视传媒| 日韩一级片在线播放| 欧美视频一区二区在线观看| 国产91在线|亚洲| 国产在线播放一区| 久久国产精品99精品国产 | 蜜臀av一区二区| 亚洲一区二区五区| 亚洲精品写真福利| 成人免费一区二区三区在线观看| 久久久www成人免费无遮挡大片| 91精品一区二区三区在线观看| 日本韩国一区二区三区| 91网页版在线| 91亚洲精品一区二区乱码| av一区二区不卡| av午夜一区麻豆| 99久久综合狠狠综合久久| 成人精品视频一区二区三区尤物| 国产一区二区三区美女| 国产综合色产在线精品| 久久精品国产在热久久| 日韩电影在线观看一区| 国产精品久久久久久久久搜平片 | 久久综合久久久久88| 欧美精品一级二级三级| 成人av小说网| 一本大道综合伊人精品热热 | 不卡的av中国片| 国产福利不卡视频| 精品亚洲porn| 日韩av一区二区三区四区| 青青草国产精品亚洲专区无| 亚洲永久免费视频| 亚洲精品福利视频网站| 最新热久久免费视频| 亚洲第一主播视频| 香蕉乱码成人久久天堂爱免费| 一区二区不卡在线视频 午夜欧美不卡在 | 中文字幕在线视频一区| 国产精品久久免费看| 欧美国产日韩亚洲一区| 亚洲国产高清不卡| 日韩一区在线免费观看| 亚洲天堂免费看| 一区二区三区产品免费精品久久75| 亚洲一区在线电影| 日日摸夜夜添夜夜添精品视频| 午夜亚洲福利老司机| 亚洲第一搞黄网站| 国产在线视频精品一区| 国产91丝袜在线观看| 91偷拍与自偷拍精品| 欧美一区二区三区免费大片| 欧美成人乱码一区二区三区| 精品美女被调教视频大全网站| 欧美精品一区二区三区四区| 国产精品美女www爽爽爽| 亚洲少妇30p| 五月天精品一区二区三区| 一区二区在线观看av| 韩国一区二区三区| 91麻豆视频网站| 日韩欧美一级精品久久|