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

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

?? py_pjsua.c

?? 基于sip協(xié)議的網(wǎng)絡(luò)電話源碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
} config_Object;/* * config_dealloc * deallocates a config object */static void config_dealloc(config_Object* self){    Py_XDECREF(self->cb);    Py_XDECREF(self->user_agent);    self->ob_type->tp_free((PyObject*)self);}/* * config_new  * config object constructor */static PyObject *config_new(PyTypeObject *type, PyObject *args, PyObject *kwds){    config_Object *self;    self = (config_Object *)type->tp_alloc(type, 0);    if (self != NULL)    {        self->user_agent = PyString_FromString("");        if (self->user_agent == NULL)    	{            Py_DECREF(self);            return NULL;        }        self->cb = (callback_Object *)PyType_GenericNew(            &callback_Type, NULL, NULL        );        if (self->cb == NULL)    	{            Py_DECREF(Py_None);            return NULL;        }    }    return (PyObject *)self;}/* * config_members * attribute list accessible from Python/C */static PyMemberDef config_members[] ={    {    	"max_calls", T_INT, offsetof(config_Object, max_calls), 0,    	"Maximum calls to support (default: 4) "    },    {    	"thread_cnt", T_INT, offsetof(config_Object, thread_cnt), 0,    	"Number of worker threads. Normally application will want to have at "    	"least one worker thread, unless when it wants to poll the library "    	"periodically, which in this case the worker thread can be set to "    	"zero."    },    {    	"outbound_proxy_cnt", T_INT,    	offsetof(config_Object, outbound_proxy_cnt), 0,    	"Number of outbound proxies in the array."    },    {    	"cred_count", T_INT, offsetof(config_Object, cred_count), 0,    	"Number of credentials in the credential array."    },    {    	"user_agent", T_OBJECT_EX, offsetof(config_Object, user_agent), 0,    	"User agent string (default empty)"    },    {    	"cb", T_OBJECT_EX, offsetof(config_Object, cb), 0,    	"Application callback."    },    {NULL}  /* Sentinel */};/* * config_Type * type wrapper for config class */static PyTypeObject config_Type ={    PyObject_HEAD_INIT(NULL)    0,                         /*ob_size*/    "py_pjsua.Config",         /*tp_name*/    sizeof(config_Object),     /*tp_basicsize*/    0,                         /*tp_itemsize*/    (destructor)config_dealloc,/*tp_dealloc*/    0,                         /*tp_print*/    0,                         /*tp_getattr*/    0,                         /*tp_setattr*/    0,                         /*tp_compare*/    0,                         /*tp_repr*/    0,                         /*tp_as_number*/    0,                         /*tp_as_sequence*/    0,                         /*tp_as_mapping*/    0,                         /*tp_hash */    0,                         /*tp_call*/    0,                         /*tp_str*/    0,                         /*tp_getattro*/    0,                         /*tp_setattro*/    0,                         /*tp_as_buffer*/    Py_TPFLAGS_DEFAULT,        /*tp_flags*/    "Config objects",          /* tp_doc */    0,                         /* tp_traverse */    0,                         /* tp_clear */    0,                         /* tp_richcompare */    0,                         /* tp_weaklistoffset */    0,                         /* tp_iter */    0,                         /* tp_iternext */    0,                         /* tp_methods */    config_members,            /* tp_members */    0,                         /* tp_getset */    0,                         /* tp_base */    0,                         /* tp_dict */    0,                         /* tp_descr_get */    0,                         /* tp_descr_set */    0,                         /* tp_dictoffset */    0,                         /* tp_init */    0,                         /* tp_alloc */    config_new,                 /* tp_new */};/* * logging_config_Object * configuration class for logging_config object */typedef struct{    PyObject_HEAD    /* Type-specific fields go here. */    int msg_logging;    unsigned level;    unsigned console_level;    unsigned decor;    PyObject * log_filename;    PyObject * cb;} logging_config_Object;/* * logging_config_dealloc * deletes a logging config from memory */static void logging_config_dealloc(logging_config_Object* self){    Py_XDECREF(self->log_filename);    Py_XDECREF(self->cb);    self->ob_type->tp_free((PyObject*)self);}/* * logging_config_new * constructor for logging_config object */static PyObject * logging_config_new(PyTypeObject *type, PyObject *args,                                    PyObject *kwds){    logging_config_Object *self;    self = (logging_config_Object *)type->tp_alloc(type, 0);    if (self != NULL)    {        self->log_filename = PyString_FromString("");        if (self->log_filename == NULL)    	{            Py_DECREF(self);            return NULL;        }        Py_INCREF(Py_None);        self->cb = Py_None;        if (self->cb == NULL)    	{            Py_DECREF(Py_None);            return NULL;        }    }    return (PyObject *)self;}/* * logging_config_members */static PyMemberDef logging_config_members[] ={    {    	"msg_logging", T_INT, offsetof(logging_config_Object, msg_logging), 0,    	"Log incoming and outgoing SIP message? Yes!"    },    {    	"level", T_INT, offsetof(logging_config_Object, level), 0,    	"Input verbosity level. Value 5 is reasonable."    },    {    	"console_level", T_INT, offsetof(logging_config_Object, console_level),    	0, "Verbosity level for console. Value 4 is reasonable."    },    {    	"decor", T_INT, offsetof(logging_config_Object, decor), 0,    	"Log decoration"    },    {    	"log_filename", T_OBJECT_EX,    	offsetof(logging_config_Object, log_filename), 0,    	"Optional log filename"    },    {    	"cb", T_OBJECT_EX, offsetof(logging_config_Object, cb), 0,    	"Optional callback function to be called to write log to application "    	"specific device. This function will be called forlog messages on "    	"input verbosity level."    },    {NULL}  /* Sentinel */};/* * logging_config_Type */static PyTypeObject logging_config_Type ={    PyObject_HEAD_INIT(NULL)    0,                              /*ob_size*/    "py_pjsua.Logging_Config",      /*tp_name*/    sizeof(logging_config_Object),  /*tp_basicsize*/    0,                              /*tp_itemsize*/    (destructor)logging_config_dealloc,/*tp_dealloc*/    0,                              /*tp_print*/    0,                              /*tp_getattr*/    0,                              /*tp_setattr*/    0,                              /*tp_compare*/    0,                              /*tp_repr*/    0,                              /*tp_as_number*/    0,                              /*tp_as_sequence*/    0,                              /*tp_as_mapping*/    0,                              /*tp_hash */    0,                              /*tp_call*/    0,                              /*tp_str*/    0,                              /*tp_getattro*/    0,                              /*tp_setattro*/    0,                              /*tp_as_buffer*/    Py_TPFLAGS_DEFAULT,             /*tp_flags*/    "Logging Config objects",       /* tp_doc */    0,                              /* tp_traverse */    0,                              /* tp_clear */    0,                              /* tp_richcompare */    0,                              /* tp_weaklistoffset */    0,                              /* tp_iter */    0,                              /* tp_iternext */    0,                              /* tp_methods */    logging_config_members,         /* tp_members */    0,                              /* tp_getset */    0,                              /* tp_base */    0,                              /* tp_dict */    0,                              /* tp_descr_get */    0,                              /* tp_descr_set */    0,                              /* tp_dictoffset */    0,                              /* tp_init */    0,                              /* tp_alloc */    logging_config_new,             /* tp_new */};/* * msg_data_Object * typewrapper for MessageData class * !modified @ 061206 */typedef struct{    PyObject_HEAD    /* Type-specific fields go here. */    /*pjsip_hdr hdr_list;*/    PyObject * hdr_list;    PyObject * content_type;    PyObject * msg_body;} msg_data_Object;/* * msg_data_dealloc * deletes a msg_data * !modified @ 061206 */static void msg_data_dealloc(msg_data_Object* self){    Py_XDECREF(self->hdr_list);    Py_XDECREF(self->content_type);    Py_XDECREF(self->msg_body);    self->ob_type->tp_free((PyObject*)self);}/* * msg_data_new * constructor for msg_data object * !modified @ 061206 */static PyObject * msg_data_new(PyTypeObject *type, PyObject *args,                                PyObject *kwds){    msg_data_Object *self;    self = (msg_data_Object *)type->tp_alloc(type, 0);    if (self != NULL)    {        Py_INCREF(Py_None);        self->hdr_list = Py_None;        if (self->hdr_list == NULL)    	{            Py_DECREF(self);            return NULL;        }        self->content_type = PyString_FromString("");        if (self->content_type == NULL)    	{            Py_DECREF(self);            return NULL;        }        self->msg_body = PyString_FromString("");        if (self->msg_body == NULL)    	{            Py_DECREF(self);            return NULL;        }    }    return (PyObject *)self;}/* * msg_data_members * !modified @ 061206 */static PyMemberDef msg_data_members[] ={    {        "hdr_list", T_OBJECT_EX, offsetof(msg_data_Object, hdr_list),	0, "Additional message headers as linked list."    },     {	"content_type", T_OBJECT_EX, offsetof(msg_data_Object, content_type),    	0, "MIME type of optional message body."    },    {    	"msg_body", T_OBJECT_EX, offsetof(msg_data_Object, msg_body), 0,    	"Optional message body."    },    {NULL}  /* Sentinel */};/* * msg_data_Type */static PyTypeObject msg_data_Type ={    PyObject_HEAD_INIT(NULL)    0,                         /*ob_size*/    "py_pjsua.Msg_Data",       /*tp_name*/    sizeof(msg_data_Object),   /*tp_basicsize*/    0,                         /*tp_itemsize*/    (destructor)msg_data_dealloc,/*tp_dealloc*/    0,                         /*tp_print*/    0,                         /*tp_getattr*/    0,                         /*tp_setattr*/    0,                         /*tp_compare*/    0,                         /*tp_repr*/    0,                         /*tp_as_number*/    0,                         /*tp_as_sequence*/    0,                         /*tp_as_mapping*/    0,                         /*tp_hash */    0,                         /*tp_call*/    0,                         /*tp_str*/    0,                         /*tp_getattro*/    0,                         /*tp_setattro*/    0,                         /*tp_as_buffer*/    Py_TPFLAGS_DEFAULT,        /*tp_flags*/    "msg_data objects",        /* tp_doc */    0,                         /* tp_traverse */    0,                         /* tp_clear */    0,                         /* tp_richcompare */    0,                         /* tp_weaklistoffset */    0,                         /* tp_iter */    0,                         /* tp_iternext */    0,                         /* tp_methods */    msg_data_members,          /* tp_members */    0,                         /* tp_getset */    0,                         /* tp_base */    0,                         /* tp_dict */    0,                         /* tp_descr_get */    0,                         /* tp_descr_set */    0,                         /* tp_dictoffset */    0,                         /* tp_init */    0,                         /* tp_alloc */    msg_data_new,                 /* tp_new */};/*  * translate_hdr * internal function  * translate from hdr_list to pjsip_generic_string_hdr */void translate_hdr(pj_pool_t *pool, pjsip_hdr *hdr, PyObject *py_hdr_list){    pj_list_init(hdr);    if (PyList_Check(py_hdr_list)) {	int i;        for (i = 0; i < PyList_Size(py_hdr_list); i++) 	{             pj_str_t hname, hvalue;	    pjsip_generic_string_hdr * new_hdr;            PyObject * tuple = PyList_GetItem(py_hdr_list, i);            if (PyTuple_Check(tuple)) 	    {                hname.ptr = PyString_AsString(PyTuple_GetItem(tuple,0));                hname.slen = strlen(PyString_AsString					(PyTuple_GetItem(tuple,0)));                hvalue.ptr = PyString_AsString(PyTuple_GetItem(tuple,1));                hvalue.slen = strlen(PyString_AsString					(PyTuple_GetItem(tuple,1)));            } else {		hname.ptr = "";		hname.slen = 0;		hvalue.ptr = "";		hvalue.slen = 0;            }              new_hdr = pjsip_generic_string_hdr_create(pool, &hname, &hvalue);            pj_list_push_back((pj_list_type *)hdr, (pj_list_type *)new_hdr);	}         }}/*  * translate_hdr_rev * internal function * translate from pjsip_generic_string_hdr to hdr_list */void translate_hdr_rev(pjsip_generic_string_hdr *hdr, PyObject *py_hdr_list){    int i;    int len;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91视频一区二区| 久久婷婷色综合| 日韩免费在线观看| 久久久一区二区| 国产精品久久久久一区二区三区共 | 亚洲美女区一区| 日韩在线卡一卡二| 国产盗摄女厕一区二区三区 | 国产人妖乱国产精品人妖| 国产午夜亚洲精品羞羞网站| 欧美精品一区二区三区蜜桃| 久久天堂av综合合色蜜桃网| 国产精品久久久久影院亚瑟| 亚洲国产一区二区三区青草影视| 青青草97国产精品免费观看 | 成人aaaa免费全部观看| 在线播放中文一区| 国产精品久久久久久户外露出| 亚洲综合色噜噜狠狠| 国产精品影音先锋| 欧美视频一二三区| 综合电影一区二区三区 | 久久综合成人精品亚洲另类欧美| 亚洲精选一二三| 成人av手机在线观看| 日韩一级成人av| 天涯成人国产亚洲精品一区av| 国产成人亚洲综合a∨婷婷图片 | 亚洲久本草在线中文字幕| 国产精品资源网| 精品国产乱码久久久久久图片| 亚洲色图都市小说| 国产suv精品一区二区6| 日韩一区二区三区电影在线观看 | 日本韩国一区二区| 国产精品毛片久久久久久久| 国产麻豆91精品| 日韩欧美中文一区二区| 免费精品视频在线| 日韩欧美一卡二卡| 蜜臀久久99精品久久久画质超高清 | 丝瓜av网站精品一区二区| 色婷婷综合久久| 一区二区三区不卡在线观看| 91亚洲永久精品| 亚洲第一在线综合网站| 777午夜精品免费视频| 日韩国产高清在线| 91精品国产综合久久久久久漫画| 日韩中文字幕一区二区三区| 555www色欧美视频| 精品亚洲国内自在自线福利| 精品欧美乱码久久久久久| 韩国理伦片一区二区三区在线播放 | 国产精品国产自产拍在线| 99re热视频精品| 亚洲国产美国国产综合一区二区| 欧美高清性hdvideosex| 男人的j进女人的j一区| 国产午夜精品一区二区三区四区| 国产高清成人在线| 亚洲精品成人精品456| 91精品国产91久久综合桃花| 狠狠色丁香婷综合久久| 亚洲欧美日韩国产成人精品影院 | 国产三级三级三级精品8ⅰ区| 粉嫩一区二区三区性色av| 一区二区三区在线观看网站| 在线成人午夜影院| 99久久夜色精品国产网站| 午夜国产精品一区| 国产精品国模大尺度视频| 欧美久久久久中文字幕| 成人app下载| 久久国产婷婷国产香蕉| 成人欧美一区二区三区在线播放| 欧美美女视频在线观看| 夫妻av一区二区| 久久99精品国产.久久久久久| 亚洲精品免费在线播放| 中文欧美字幕免费| 精品美女在线观看| 欧美日韩高清一区二区三区| 国产成人av网站| 久草热8精品视频在线观看| 亚洲自拍都市欧美小说| 中文字幕一区三区| 久久久91精品国产一区二区精品 | 精品1区2区3区| 91在线观看美女| 成人国产在线观看| 丁香桃色午夜亚洲一区二区三区| 久久91精品久久久久久秒播| 日本午夜一本久久久综合| 亚洲国产毛片aaaaa无费看| 亚洲欧美色图小说| 亚洲欧美日本在线| 亚洲精品日韩专区silk| 亚洲精品国产高清久久伦理二区| 国产精品高潮呻吟| 亚洲精品你懂的| 午夜视频在线观看一区二区| 午夜影视日本亚洲欧洲精品| 视频一区中文字幕国产| 免费成人av在线| 国产毛片精品国产一区二区三区| 国产毛片精品视频| 91天堂素人约啪| 欧美日韩午夜精品| 日韩免费观看高清完整版在线观看 | 国产精品久久久久久久蜜臀| 国产精品家庭影院| 亚洲一区二区三区国产| 久久精品国产免费看久久精品| 国产精品一区二区视频| 91视频国产观看| 在线精品亚洲一区二区不卡| 91精品国产色综合久久不卡电影| 精品国产91乱码一区二区三区| 国产亚洲精品aa午夜观看| 亚洲综合免费观看高清完整版 | 亚洲一区二区欧美日韩 | 中文字幕av在线一区二区三区| 中文字幕一区二区三区视频| 亚洲一二三区在线观看| 国产麻豆欧美日韩一区| 欧美三级中文字幕| 国产夜色精品一区二区av| 亚洲曰韩产成在线| 国产成人精品网址| 91精品国产aⅴ一区二区| ●精品国产综合乱码久久久久| 日本不卡在线视频| 欧美视频中文字幕| 国产精品久久久久影院亚瑟| 久久精品国产澳门| 欧美色综合影院| 最新久久zyz资源站| 夫妻av一区二区| 亚洲精品在线三区| 免费欧美高清视频| 欧美日韩国产乱码电影| 亚洲欧美激情视频在线观看一区二区三区| 日本不卡一区二区| 色www精品视频在线观看| 国产性做久久久久久| 狠狠色丁香婷婷综合| 精品国精品国产尤物美女| 日韩av电影免费观看高清完整版 | 欧美成人免费网站| 亚洲高清一区二区三区| 91福利国产精品| 亚洲精品久久久蜜桃| 91成人网在线| 亚洲自拍偷拍综合| 欧美色综合网站| 天天操天天综合网| 精品国产自在久精品国产| 亚洲人精品午夜| 韩国三级中文字幕hd久久精品| 欧美唯美清纯偷拍| 国产精品久久久久精k8| 丝袜脚交一区二区| 日韩欧美久久一区| 久久99久久99小草精品免视看| 国产99久久久久久免费看农村| 欧美日韩国产系列| 久久99精品久久只有精品| 久久久久久久久99精品| 成人h版在线观看| 一区二区三区在线观看动漫| 91精品国产一区二区| 国产精品中文字幕一区二区三区| 国产精品久久久爽爽爽麻豆色哟哟 | 国产三级精品三级| av不卡一区二区三区| 天天影视涩香欲综合网| 欧美精品一区二区精品网| 精品在线免费视频| 亚洲欧美在线视频| 欧美一级电影网站| 色婷婷狠狠综合| 国产乱人伦精品一区二区在线观看 | 一区二区久久久久久| 精品粉嫩aⅴ一区二区三区四区| 91在线精品一区二区三区| 视频一区二区三区在线| 国产精品久久99| 久久久精品2019中文字幕之3| 91蜜桃在线观看| 一区二区三区美女视频| 久久综合色一综合色88| 欧美妇女性影城| av亚洲精华国产精华精| 国产一区二区在线影院| 日韩高清在线观看| 性做久久久久久免费观看| 一区二区在线观看免费| 国产精品美女久久久久久久| 国产午夜久久久久|