当前位置:文档之家› eXosip实现sip uac

eXosip实现sip uac

eXosip实现sip uac
eXosip实现sip uac

#include

#include

#include

#define ENABLE_TRACE //打开log用的

#include

#include

int main(int argc,char *argv[])

{

eXosip_event_t *je;

osip_message_t *reg=NULL;

osip_message_t *invite=NULL;

osip_message_t *ack=NULL;

osip_message_t *info=NULL;

osip_message_t *message=NULL;

int call_id,dialog_id;

int i,flag,flag1=1;

char command;

char tmp[4096];

char *localip="192.168.247.130";

char *serverip="192.168.247.130";

char *username="8001";

char *passwd="8001";

char *realm="\"asterisk\"";//这个字段可以不用

char *dial="8006";

int localport=15061;

int serverport=5061;

char from[50];

sprintf(from,"sip:%s@%s:%d",username,serverip,serverport);

char to[50];

sprintf(to,"sip:%s@%s:%d",dial,serverip,serverport);

char registrar[50];

sprintf(registrar,"sip:%s:%d",serverip,serverport);

char contact[50];

sprintf(contact,"sip:%s@%s:%d",username,localip,localport);

int ring_timeout = 20;//20秒是振铃超时

printf("r 注册\n");

printf("u 注销\n");

printf("i 发起呼叫请求\n");

printf("h 挂断\n");

printf("q 退出程序\n");

printf("s 显示各种id\n");

TRACE_INITIALIZE(8, NULL); //打开log用的

i=eXosip_init();

if(i!=0)

{

printf("Couldn't initialize eXosip!\n");

return -1;

}

else

{

printf("eXosip_init successfully!\n");

}

i=eXosip_listen_addr(IPPROTO_UDP,NULL,localport,AF_INET,0);

if(i!=0)

{

eXosip_quit();

fprintf(stderr,"Couldn't initialize transport layer!\n");

return -1;

}

flag=1;

while(flag)

{

printf("will eXosip_event_wait 2\n");

je=eXosip_event_wait(0,10);

printf("after eXosip_event_wait 2\n");

eXosip_lock();

eXosip_default_action(je);

eXosip_unlock();

printf("Please input the command:\n");

scanf("%c",&command);

getchar();

switch(command)

{

case 'r':

{

eXosip_clear_authentication_info();

if (eXosip_add_authentication_info(username, username, passwd, NULL, NULL/*realm*/))

{

printf("Add_authentication_info failed\n");

return -4;

}

int i=eXosip_register_build_initial_register (from,registrar,contact,120,®);

if(i<0)

{

printf("Register failed!\n");

sleep(10);

return -4;

}

eXosip_register_send_register(i,reg);

je=eXosip_event_wait(1,0);

eXosip_lock();

eXosip_default_action(je);

eXosip_unlock();

}

break;

case 'u':

{

eXosip_clear_authentication_info();

if (eXosip_add_authentication_info(username, username, passwd, NULL, NULL/*realm*/))

{

printf("Add_authentication_info failed\n");

return -4;

}

int i=eXosip_register_build_initial_register (from,registrar,contact,0,®);

if(i<0)

{

printf("unregister failed!\n");

sleep(10);

return -4;

eXosip_register_send_register(i,reg);

je=eXosip_event_wait(1,0);

eXosip_lock();

eXosip_default_action(je);

eXosip_unlock();

}

break;

case 'i':

i=eXosip_call_build_initial_invite(&invite,to,from,NULL,"This is a call for conversation");

if(i!=0)

{

printf("Initial INVITE failed!\n");

break;

}

snprintf(tmp,4096,

"v=0\r\n"

"o=wangpeng 0 2 IN IP4 %s\r\n"

"s=xxxx\r\n"

"c=IN IP4 %s\r\n"

"t=0 0\r\n"

"m=audio 12000 RTP/AVP 0 8\r\n"

"a=rtpmap:8 PCMA/8000\r\n"

"a=rtpmap:0 PCMU/8000\r\n"

"a=ptime:20\r\n"

"a=sendrecv",

localip,localip);

osip_message_set_body(invite,tmp,strlen(tmp));

osip_message_set_content_type(invite,"application/sdp");

eXosip_lock();

eXosip_call_send_initial_invite(invite); //invite SIP INVITE message to send

eXosip_unlock();

flag1=1;

while(flag1)

{

printf("will eXosip_event_wait 3\n");

je=eXosip_event_wait(ring_timeout,0);

printf("after eXosip_event_wait 3\n");

if(je!=NULL)

;//printEventType(je);

else

printf("No response or the time is over!\n");

break;

}

eXosip_lock();

eXosip_default_action(je);

eXosip_automatic_refresh();

eXosip_unlock();

switch(je->type)

{

case EXOSIP_CALL_INVITE:

printf("###### A new invite received!\n");

break;

case EXOSIP_CALL_PROCEEDING: //收到100try

printf("###### Proceeding!\n");

break;

case EXOSIP_CALL_RINGING:

printf("###### Ringing!\n");

break;

case EXOSIP_CALL_ANSWERED:

printf("###### OK! Connected!\n");

call_id=je->cid;

dialog_id=je->did;

eXosip_lock();

eXosip_call_build_ack(je->did,&ack);

eXosip_call_send_ack(je->did,ack);

eXosip_unlock();

flag1=0;

break;

case EXOSIP_CALL_CLOSED: //a BYE was received for this call printf("###### the other sid closed!\n");

break;

case EXOSIP_CALL_ACK:

printf("###### ACK received!\n");

break;

default:

printf("###### other msg!\n");

if(je->response && (je->response->status_code==486))

{

osip_header_t* retryafter = NULL;

osip_message_get_retry_after(je->response, 0, &retryafter);

printf("###### *** %s ***\n", retryafter->hvalue?retryafter->hvalue:"null");

flag1=0;

//eXosip_event_free(je);

}

break;

} //end switch

//eXosip_event_free(je);

} //end while

break;

case 'h':

eXosip_lock();

i=eXosip_call_terminate(call_id,dialog_id);

if(i<0)

{

printf("call terminate failed!\n");

}

eXosip_unlock();

je=eXosip_event_wait(1,0);

if(je!=NULL)

;//printEventType(je);

eXosip_lock();

eXosip_default_action(je);

eXosip_unlock();

break;

case 'q':

eXosip_quit();

printf("Exit the setup!\n");

flag=0;

break;

case 's':

if(je != NULL)

printf("tid = %d,did = %d,cid = %d \n",je->tid,je->did,je->cid);

break;

case 'm':

i=eXosip_message_build_request(&message,"MESSAGE",to,from,NULL);

if(i==0)

printf("build message ok");

snprintf(tmp,4096,"This is a sip message(Method:MESSAGE)");

osip_message_set_body(message,tmp,strlen(tmp));

osip_message_set_content_type(message,"text/plain");

i=eXosip_message_send_request(message);

if(i==0)

printf("send message ok");

je=eXosip_event_wait(10,0);

if(je!=NULL)

;//printEventType(je);

eXosip_lock();

eXosip_default_action(je);

eXosip_unlock();

break;

default:

printf("no %c option\n",command);

break;

}

}

return(0);

}

PWD=$(shell pwd)

LIBCODEPATH=/usr/src

LIBPATH=/usr/local

osip2:

@echo "will make osip2";echo;echo

@cd $(LIBCODEPATH)/libosip2-3.6.0;echo "pwd is: ";pwd;echo;echo;make;make install;cd $(PWD)

eXosip2:

@echo "will make eXosip2";echo;echo

@cd $(LIBCODEPATH)/libeXosip2-3.5.0;echo "pwd is: ";pwd;echo;echo;make;make install;cd $(PWD)

myproj:

@echo "will make myproj";echo;echo

rm -f sipuac

gcc -o sipuac sipuac.c -I$(LIBPATH)/include -L$(LIBPATH)/lib -losip2 -losipparser2 -leXosip2

all:

@echo "pwd is $(shell pwd)"

@echo "will make osip2"

@echo

@cd $(LIBCODEPATH)/libosip2-3.6.0;echo "pwd is: ";pwd;echo;echo;make;make install;cd $(PWD)

@echo "pwd is $(shell pwd)"

@echo

@echo

@echo "will make eXosip2"

@echo

@cd $(LIBCODEPATH)/libeXosip2-3.5.0;echo "pwd is: ";pwd;echo;echo;make;make install;cd $(PWD)

@echo "pwd is $(shell pwd)"

@echo

@echo

@echo "will make myproj"

rm -f sipuac

gcc -o sipuac sipuac.c -I$(LIBPATH)/include -L$(LIBPATH)/lib -losip2 -losipparser2 -leXosip2

clean:

@echo "will clean osip2";echo;echo

@cd $(LIBCODEPATH)/libosip2-3.6.0;echo "pwd is: ";pwd;echo;echo;make clean;cd $(PWD) @echo "will clean eXosip2";echo;echo

@cd $(LIBCODEPATH)/libeXosip2-3.5.0;echo "pwd is: ";pwd;echo;echo;make clean;cd $(PWD)

@echo "will clean myproj";echo;echo

rm -f sipuac

JAVA经典算法案例

JA V A经典算法40例 【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... public class exp2{ public static void main(String args[]){ int i=0; for(i=1;i<=20;i++) System.out.println(f(i)); } public static int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } } 或 public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math(); for(i=1;i<=20;i++) System.out.println(mymath.f(i)); } } class math { public int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } } 【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math(); for(i=2;i<=200;i++) if(mymath.iszhishu(i)==true) System.out.println(i); } } class math { public boolean iszhishu(int x) { for(int i=2;i<=x/2;i++) if (x % i==0 ) return false; return true; } } 【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水

SIP协议呼叫流程及协议分析

一、SIP协议介绍: 会话发起协议SIP(Session Initiation Protocol)是一个应用层控制信令协议,用于建立、更改和终止多媒体会话或呼叫。SIP作为一个基础,可以在其上提供很多不同的服务。目前已经定义的媒体类型有音频、视频、应用、数据、控制。 二、SIP呼叫流程: 注册流程: (1)用户首次试呼时,终端代理A 向代理服务器发送REGISTER 注册请求; (2)代理服务器通过后端认证/计费中心获知用户信息不在数据库中,便向终端代理回送401Unauthorized 质询信息,其中包含安全认证所需的令牌; (3)终端代理提示用户输入其标识和密码后,根据安全认证令牌将其加密后,再次用REGISTER 消息报告给代理服务器; (4)代理服务器将REGISTER 消息中的用户信息解密,通过认证/计费中心验证其合法后,将该用户信息登记到数据库中,并向终端代理A 返回成功响应消息200 OK。 呼叫流程:

(1)用户摘机发起一路呼叫,终端代理A 向该区域的代理服务器发起Invite 请求;(2)代理服务器通过认证/计费中心确认用户认证已通过后,检查请求消息中的Via 头域中是否已包含其地址。若已包含,说明发生环回,返回指示错误的应答;如果没有问题,代理服务器在请求消息的Via 头域插入自身地址,并向Invite 消息的To 域所指示的被叫终端代理B 转送Invite 请求; (3)代理服务器向终端代理A 送呼叫处理中的应答消息,100 Trying; (4)终端代理B 向代理服务器送呼叫处理中的应答消息,100 Trying; (5)终端代理B 指示被叫用户振铃,用户振铃后,向代理服务器发送180 Ringing 振铃信息; (6)代理服务器向终端代理A 转发被叫用户振铃信息; (7)被叫用户摘机,终端代理B 向代理服务器返回表示连接成功的应答(200 OK);(8)代理服务器向终端代理A 转发该成功指示(200 OK); (9)终端代理A 收到消息后,向代理服务器发ACK 消息进行确认; (10)代理服务器将ACK 确认消息转发给终端代理B; (11)主被叫用户之间建立通信连接,开始通话; 结束流程:

网络游戏公司简介范文3篇(完整版)

网络游戏公司简介范文3篇 网络游戏公司简介范文3篇 网络游戏指以互联网为传输媒介,以游戏运营商服务器和用户计算机为处理终端,以游戏客户端软件为信息交互窗口的旨在实现娱乐、休闲、交流和取得虚拟成就的具有可持续性的个体性多人在线游戏。下面是网络游戏公司简介范文,欢迎参阅。 网络游戏公司简介范文1 边锋网络游戏是201X年8月整合入盛大网络旗下的边锋游戏和201X年12月整合入盛大网络旗下的游戏茶苑两家中国领先的棋牌游戏公司合并运营而成的。201X年边锋公司购回了盛大持有的股份,独自进行边锋网络游戏的运营,运营的游戏平台有: 纸牌类,如: 德清点子、五人原子、四人斗地主、原子、六扣、双扣、三扣 一、跑得快、斗地主、德州扑克、升级、红五等; 棋类,如: 三英战吕布、军旗翻翻棋、爆笑四国、陆战棋、黑白棋、双飞棋、五子棋、飞行棋等; 骨牌类,如: 新沈阳麻将、丽水麻将、富阳麻将、合肥麻将、德阳麻将、攀枝花麻将、自贡麻将、杭州麻将等; 对战类,如: 台球、对对碰、宇宙方块、斯诺克、疯狂火箭、俄罗斯方块、挖哈哈、连连看等。

桌游类,如: 三国杀online等等 201X年4月,盛大又将边锋连同浩方以35亿元的高价出售给浙报传媒集团,其中,浙报传媒为边锋估值3 1.8亿人民币,而盛大当年收购边锋的总代价为201X万美元,约合 1.64亿元人民币,8年之间,边锋增值30多亿元。 据浙报传媒公告显示,201X年杭州边锋营业收入4亿元,净利润 1.44亿元;201X年营业收入 6亿元,净利润9946万元。 网络游戏公司简介范文2 上海盛大网络发展有限公司 盛大文学通过整合国内优秀的网络原创文学力量,推动纸质书出版,加强第三方版权内容的数字化运营,构建全球领先的正版数字书城,旨在推动数字出版,引领数字阅读潮流,为消费者提供包括数字图书、网络文学、数字报刊等数字商品。并依托原创故事,推动实体出版、影视、动漫、游戏等相关文化产业的发展。 盛大在线作为专为无物流的文化和虚拟产品提供数字出版的服务平台,致力于提供基于云计算服务的综合解决方案。通过完善的统一登录、计费、内容分发、广告营销、搜索、客户关系服务等,为广大互联网用户和企业获取数字内容产品提供优选渠道和专业化的用户服务体系。 盛大游戏是中国领先的网络游戏开发商、运营商和发行商,致力于打造中国乃至全球领先的网络游戏平台。盛大游戏拥有201X多名自

Java经典编程题50道

【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 【程序3】 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如: 153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 【程序5】 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下 的用C表示。 1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 【程序6】 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 1.程序分析:利用辗除法。 【程序7】 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1.程序分析:利用while语句,条件为输入的字符不为'\n'. 【程序8】 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加), 几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。 【程序9】

sip协议原理分析及总结

SIP协议学习总结 1、SIP协议定义 SIP(Session Initiation Protocol,即初始会话协议)是IETF提出的基于文本编码的IP电话/多媒体会议协议。用于建立、修改并终止多媒体会话。SIP 协议可用于发起会话,也可以用于邀请成员加入已经用其它方式建立的会话。多媒体会话可以是点到点的话音通信或视频通信,也可以是多点参与的话音或视频会议等。SIP协议透明地支持名字映射和重定向服务,便于实现ISDN,智能网以及个人移动业务。SIP协议可以用多点控制单元(MCU)或全互连的方式代替组播发起多方呼叫。与PSTN相连的IP电话网关也可以用SIP协议来建立普通电话用户之间的呼叫。 SIP协议在IETF多媒体数据及控制体系协议栈结构的位置 H.323SIP RTSP RSVP RTCP H.263 etc. RTP TCP UDP IP PPP Sonet AAL3/4AAL5 ATM Ethernet PPP V.34 SIP协议支持多媒体通信的五个方面: ◆用户定位:确定用于通信的终端系统; ◆用户能力:确定通信媒体和媒体的使用参数; ◆用户有效性:确定被叫加入通信的意愿; ◆会话建立:建立主叫和被叫的呼叫参数; ◆会话管理:包括呼叫转移和呼叫终止; SIP协议的结构 SIP是一个分层的协议,也就是说SIP协议由一组相当无关的处理层次组成,这些层次之间只有松散的关系。 SIP最底层的是它的语法和编码层。编码方式是采用扩展的Backus-Naur Form grammar (BNF范式)。 第二层是传输层。它定义了一个客户端发送请求和接收应答的方式,以及一 个服务器接收请求和发送应答的方式。所有的SIP要素都包含一个通讯层。 第三层是事务层。事务是SIP的基本组成部分。一个事务是UAC向UAS发送的一个请求以及UAS向UAC发送的一系列应答。事务层处理应用服务层的重发,匹配请求的应答,以及应用服务层的超时。任何一个用户代理客户端完成的事情都是

电视专题片策划方案

上海文典国际文化艺术中心 影视部系列电视专题片策划上海文典国际文化艺术中心影视部是一家主要从事图书出版、影视节目策划、制作的专业单位。 2005年,中心将面向海外主流市场,拍摄制作一部系列专题片,从各个角度、各个方面立体展示当代中国的社会、文化、风格,以及当代中国人的思想、情感和生活状态。 基本理念 本系列专题片的主题,是向海外宣传中国,展示当代中国的社会、文化、风格,以及当代中国人的思想、情感和真实的生活状态。 节目应遵循新闻和传播规律,淡化宣传特别是政治色彩,增强节目的亲和力和传播效果。 通过我们的节目,使广大的海外观众(包括外国人和海外华人),特别是海外主流社会,了解中国社会的现状,了解中国人的生存情况,看到当代中国人的现实生活和情感世界。节目定位 节目的主体形态为记录片。节目展现的是当前时间正在发生的人物和事件。 把人作为节目的主体,从效果上讲是最佳的,最为生动、最容易引起共鸣。本系列专题片的每一集,都要以一个人物或有关联的群体人物以及围绕人物发生的事件为主要对象,作为我们描述的主体内容。 这样,人物既是主要信息,又承担着一种结构性的功能,我们通过人物进入事件的细部,并由此呈现更深层的人与社会诸因素之间的复杂关系。从某种意义上说,展示这种复杂关系才是叙述事件的真正目的,故事是一种包装和策略,文化在它的背后。只有这样,才能体现出人物背后所蕴含的时代特征和社会内涵。 每一集单独的专题片应有自己的独特视点和倾向性,但总体应遵循整个系列专题片的总体特征和思路,体现主流观点。 节目时长 每一集专题片的时间长度为24分钟。 这是一个能基本完整、全面地叙述人物故事与有关背景、刻划细节,充分表现人物性格的长度。 这一时长也有利于段落划分的节目兴奋点的设置。比如可以把24分钟的节目内容大致划分成3至4小节,每小节均具备相对完整的表现内容,有自身的兴奋点和高潮点。 选题方向 本系列专题片总的选题方向,是各行各业具有代表性的人物。 进入我们视野的人物,一种是他们的工作或多或少地在当今人们生活的某一方面产生着普遍效应,影响着人们的生活方式和生存形态。另一种是能代表当今社会人们的生活方式和生存状态的普通人。前者代者着社会的精英层面,后者代表着社会的平民层面,通过他们基本能真实、全面的反应中国现阶段人们的生活或状态。 表现手法 本系列专题片的表现手法以跟踪纪实拍摄为主,辅之以适量的采访。

快递公司简介范文

快递公司简介范文 中国快递行业目前处于国内快递行业和国际快递巨头竞争激烈的环境中,相对国际快递巨头,中国民营快递公司处于比较弱势,中国国内快递企业多争夺于底端市场。中国快递业务发展程度还很低,现在得快递业务量还不到GDP的0.3%,与发达国家达到GDP的1%左右相比差距很大。下面是快递公司简介范文,欢迎参阅。 快递公司简介范文1 80后快递服务有限公司,是以服务为主体的公司。服务的范围包括有同城快递,物流配送,年节送礼,同行调货,门市宅长期配送服务。另外我们还计划推出80后商务套餐。以满足江城商务迅猛发展的快捷生活需求。 公司名称:武汉80后快递服务有限公司所属行业:快递,服务业企业性质:集体企业成立日期:20xx-4-30武汉80后快递服务有限公司公司的服务网络计划在两个月内完成建设,下一步招募专业人员组建一个为80后为主要人群服务的心理援助中心,帮助解决80后为主要人群在工作,学习,生活,恋爱,婚姻及家庭子女教育中遇到的各种问题。 快递公司简介范文2 申通快递 公司注册商标为“STO+申通”,注册编号为1379930。主要承接非信函、样品、大小物件的速递业务。20xx年3月公司通过ISO9001:20xx国际质量管理体系认证。 公司奉行“团结、务实、开拓、创新”的企业精神,“快速、准确、安全、周到、”的服务方针公司经营十余年来,已深得广大客户的信任和支持。 公司自1993年成立以来,在董事长、总经理陈德军的正确领导下,在广大客户的支持和关怀下,在全体员工的艰苦奋斗和顽强拼搏下,先后荣获上海市松江区民营企业20xx至20xx年度的《信得过企业》、《先进企业》荣誉称号;20xx年,公司荣获《中国物流十大影响力品牌》称号,公司董事长、总经理陈德军先生个人荣获《中国品牌建设十大杰出企业家》荣誉称号。 申通快递介入电子商务配送业务已经开始起步,并计划为新业务斥资千万,一套全新的标准化流程和服务标准已经设计完毕,软件系统也已具备代收货款功能,与几大电子商务网站的谈判正在进行。

JAVA算法100例_全源码

JA V A经典算法40题 【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... public class exp2{ public static void main(String args[]){ int i=0; for(i=1;i<=20;i++) System.out.println(f(i)); } public static int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } } 或 public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math(); for(i=1;i<=20;i++) System.out.println(mymath.f(i)); } } class math { public int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } } 【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math(); for(i=2;i<=200;i++) if(mymath.iszhishu(i)==true) System.out.println(i); } } class math { public int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } public boolean iszhishu(int x) { for(int i=2;i<=x/2;i++) if (x % 2==0 ) return false; return true;

SIP协议相关文件

Osip2是一个开放源代码的sip协议栈,是开源代码中不多使用C语言写的协议栈之一,它具有短小简洁的特点,专注于sip底层解析使得它的效率比较高。 eXosip是Osip2的一个扩展协议集,它部分封装了Osip2协议栈,使得它更容易被使用。 一、介绍 Osip2是一个开放源代码的sip协议栈,是开源代码中不多使用C语言写的协议栈之一,它具有短小简洁的特点,专注于sip底层解析使得它的效率比较高。但缺点也专门明显,首先确实是可用性差,没有专门好的api封装,使得上层应用在调用协议栈时专门破裂;其次,只做到了transaction层次的协议过程解析,

缺少call、session、dialog等过程的解析,这也增加了使用的难度;再次,缺少线程并发处理的机制,使得它的处理能力有限。 eXosip是Osip2的一个扩展协议集,它部分封装了Osip2协议栈,使得它更容易被使用。eXosip增加了call、dialog、registration、subscription等过程的解析,使得有用性更强。然而eXosip局限于UA的实现,使得它用于registrar、sip server等应用时极其不容易。另外,它并没有增加线程并发处理的机制。而且只实现了音频支持,缺少对视频和其它数据格式的支持。 综合来讲,Osip2加上eXosip协议栈仍然是个实现Sip协议不错的选择。因此需要依照不同的需求来增加更多的内容。 二、Osip2协议栈的组成 Osip2协议栈大致能够分为三部分:sip协议的语法分析、sip 协议的过程分析和协议栈框架。 1、Sip协议的语法分析:

要紧是osipparser2部分,目前支持RFC3261和RFC3265定义的sip协议消息,包括INVITE、ACK、OPTIONS、CANCEL、BYE、SUBSCRIBE、NOTIFY、MESSAGE、REFER和INFO。不支持RFC3262定义的PRACK。 遵循RFC3264关于SDP的offer/answer模式。带有SDP的语法分析。 支持MD5加解密算法。支持Authorization、www_authenticate 和proxy_authenticate。 2、Sip协议的过程分析: 要紧是osip2部分,基于RFC3261、RFC3264和RFC3265的sip 协议描述过程,围绕transaction这一层来实现sip的解析。 Transaction是指一个发送方和接收方的交互过程,由请求和应答组成。请求分为Invite类型和Non-Invite类型。应答分为响应型的应答和确认型的应答。响应型的应答是指那个应答仅代表

《电视频道及节目整体包装》教学大纲和课程简介

《电视频道及节目整体包装》教学大纲和课程简介《电视频道及节目整体包装》教学大纲 一、课程基本信息 课程编号:030111 英文名称: 授课对象:数字媒体艺术专业影视制作方向和网络多媒体方向本科学生 开课学期:第六学期 学分/学时:4/64 先修课程:电视节目策划 教学方式:采用理论讲授和实际训练相结合的方式 考核方式:考试(笔试和作品结合) 课程简介:电视频道与节目包装是数字媒体艺术专业影视制作方向和网络多媒体方向本科学生的主干专业课。本课程综合讲授电视频道与节目包装的理念、策略、设计、制作、评价等。同时,它也是一门实践性很强的课程,在电视包装创作的各个环节都有具体的方法和要求。通过学习这些内容,为学生今后开展电视频道包装和节目包装及相关领域的研究与实践工作都打下了良好的基础。 二、课程教学目的和要求 1(要求学生了解电视频道的品牌构建; 2(训练学生的电视包装创作能力。包括掌握电视频道LOGO、收视宣传片、形象宣传片等频道包装中各个环节的形式,并能够应用于设计实践。 三、教学内容与学时分配 教学内容(章、节) 重点、难点讲授学时其他学时备注 4 第一章电视频道的品牌战略与电视频

道的品牌营销 第一节品牌的基本概念 第二节电视频道品牌概念 第三节电视频道的品牌形象 第四节电视频道的观众研究 第五节电视频道品牌营销 第六节电视频道品牌推广 第二章品牌战略下的电视形象识别系 4 统 第一节电视形象识别系统 第二节电视频道的理念包装 第三节电视频道的行为包装 4 第三章电视频道形象包装设计原则 第一节“KISS”原则 第二节“USP”原则 第三节观众利益原则 第四节可持续性原则 第四章电视频道在播包装的实施:频道重点:第二节 4 实际操作: ID 4 第一节电视频道ID的概念 第二节电视频道ID的意义和功效 第三节掌握几种ID的创作类型 第五章电视频道在播包装的实施:宣传重点:第二节 2 实际操作: 口号 2 第一节电视频道广告语系的概念 第二节频道广告语系的分类

网络科技公司简介范文5篇

网络科技公司简介范文5篇Introduction of network technology company 编订:JinTai College

网络科技公司简介范文5篇 小泰温馨提示:写作是运用语言文字符号以记述的方式反映事物、表达思想感情、传递知识信息、实现交流沟通的创造性脑力劳动过程。本文档根据写作活动要求展开说明,具有实践指导意义,便于学习和使用,本文下载后内容可随意修改调整修改及打印。 本文简要目录如下:【下载该文档后使用Word打开,按住键盘Ctrl键且鼠标单击目录内容即可跳转到对应篇章】 1、篇章1:网络科技公司简介范文 2、篇章2:网络科技公司简介范文 3、篇章3:网络科技公司简介范文 4、篇章4:网络科技公司简介范文 5、篇章5:网络科技公司简介范文 网络公司不仅仅是提供域名注册、空间租用、网站开发、网站建设与网络营销活动策划相关的企业组织。下面是网络科技公司简介范文,欢迎参阅。 篇章1:网络科技公司简介范文

支付宝(xxx有限公司是国内领先的独立第三方支付平台,是阿里巴巴集团的关联公司。支付宝致力于为中国电子商务提供“简单、安全、快速”的在线支付解决方案。 支付宝公司从20xx年建立开始,始终以“信任”作为产 品和服务的核心。不仅从产品上确保用户在线支付的安全,同时让用户通过支付宝在网络间建立起相互的信任,为建立纯净的互联网环境迈出了非常有意义的一步。 支付宝提出的建立信任,化繁为简,以技术的创新带动 信用体系完善的理念,深得人心。在六年不到的时间内,为电子商务各个领域的用户创造了丰富的价值,成长为全球最领先的第三方支付公司之一。截止到20xx年12月,支付宝注册用户突破5.5亿,日交易额超过25亿元人民币,日交易笔数达 到850万笔。 支付宝创新的产品技术、独特的理念及庞大的用户群吸 引越来越多的互联网商家主动选择支付宝作为其在线支付体系。 目前除淘宝和阿里巴巴外,支持使用支付宝交易服务的 商家已经超过46万家;涵盖了虚拟游戏、数码通讯、商业服务、机票等行业。这些商家在享受支付宝服务的同时,还是拥有了一个极具潜力的消费市场。

sip协议简单解释

引言 节省费用以及想把语音和数据融合在一起的需求,促使了IP电话的蓬勃发展。 为了使IP电话为大众所接受,成为主流,甚至最终取代传统的POTS(Plain Old Telephone Service旧式电话服务),有两个条件必须满足: 第一,话音通信的质量至少要达到POTS同样的水准; 第二,必须有信令的支持,就像PSTN(Pubic Switched Telephone Networks)公用交换电话网)中有No.7信令一样。 目前,IP电话系统有H.323和SIP两个完整和独立的信令标准,它们都对IP电话系统信令提出了完整的解决方案。它们对呼叫的连接都具有建立、管理和撤销的能力,具有网络管理功能,使端点用户具有进行建立和交互QoS(Quality of Service)的能力,且容易扩充新功能,支持不同类型的互操作性。当然,这两个协议都包含关于语音编码的解压缩方面的要求,只是这部分对两个协议而言是一样的。我们主要是从信令的角度对它们进行比较分析。 2 H.323简介 H.323是ITU-T第16工作组的建议,H.323由一组协议构成,其中有负责音频与视频信号的编码、解码和包装,有负责呼叫信令收发和控制的信令,还有负责能力交换的信令。1999年7月前,多数已实现的系统是基于H.323第二版的,而在此之后,H.323第三版开始应用。 2.1通信系统 H.323定义了4个主要部件构筑基于网络的通信系统:终端Terminals 、网关Gateways 、网守Gatekeepers 、多点控制单元(MCU)。 1终端 在基于IP的网络上是一个客户端点。它需要支持下面3项功能:支持信令和控制,即支持

电视节目自我介绍

电视节目自我介绍 自我介绍是最重要的把自己推销给别人,得到对方认可的方式,一个好的自我介绍才能赢得更多的目光投射到你身上。今天小编就来告诉你电视节目自我介绍,欢迎阅读。 电视节目自我介绍篇【1】 “春江潮水连海平,海上明月共潮生”。 各位老师好,我是1号考生,我来自黑龙江省双鸭山市,我的名字叫张潮,潮是潮水的潮,正是因为名字里的这个“潮”字,使我在和张若虚的《春江花月夜》邂逅时、一下子迷上了她,迷上了那些意境深远的中华古典诗词。 而我对于传媒专业的热爱也正如那春江潮水般高涨。我学过贝斯、架子鼓和吉他,参加过地区的青年歌手赛,虽然只获得了一个优秀奖。我曾组建过乐队,举办过一次还算成功的演出,但是在这看似纷乱的爱好或者说生活中,我最喜爱的还是吉他。喜爱林肯公园摇滚风格的激情演绎,喜爱卡奇乐团民谣风格的质朴和淡淡的忧伤。这些让我更加真切的感受到吉他演奏的无穷魅力。

我虽平凡,但也期待光荣与梦想;虽是年轻的90后,却也有着父辈的执着与真诚。今天,我也带着这份热情、带着对中华古典诗词以及音乐的热爱报考了学院,我相信,贵校的教育和我的努力一定会使我成为一名出色的主持人。谢谢! 电视节目自我介绍篇【2】 来之前,有朋友说这里是没有硝烟的战场。看不见的对手,你四面楚歌;顶着对手的重炮,提防着处处的陷阱。说的够残酷,不过所谓地狱在左,天堂在右,我倒是更愿意将这里比做现在的股市。 同样一个市场,只要不是一种“博傻”状态,总会有人欢喜有人忧。真正进入之前,首先要明确一点,不能“套死”其中。在大赛中,我要学会“识套”,我要在大赛中学会“朝避猛虎,夕避长蛇”,我要打开自己“巨大的上升空间”。请评委老师给我机会体会“无招胜有招”、“简单就是最好”的真谛。 近期虽横盘多日,动静不大,但我却是来自新疆板块的一只不折不扣的“蓝筹股”,近8年的主持经历让我具备拉动大盘的能力,虽说曾经也一度成长为“绩优股”,但市场终究考察的是你的“升值潜力”,大家如果看好我,那就请记住这个编号,选中我,没错的! 电视节目自我介绍篇【3】

系统集成公司简介范文

系统集成公司简介范文 系统集成商是指具备系统资质,能对行业用户实施系统集成的企业。下面是系统集成公司简介范文,欢迎参阅。 系统集成公司简介范文1 广州系统集成公司,专业为客户提供结构化布线系统、网络技术工程、程控交换机系统安装、监控安防系统、一卡通系统、音视频系统、机房建设等系统方案设计、施工及维护的服务。 “全面满足,不断超越,永创新高,打造行业领跑者形象”,公司一直秉承“以市场为导向、以客户为中心”的发展理念,以“团结、务实、拼搏、创新”为宗旨,不断苦练内功,随时为广大客户提供最优质的产品与服务。 系统集成公司长久以来一直努力的目标,就是协助客户建立最具竞争力的信息化系统,即协助客户去规划、建设和维护高性能的网络系统、可靠的网络安全建设、智能建筑系统等。并在业界树立了良好的口碑和有了很好的发展。如今,开建智能的服务网络覆盖多个地方并都设有办事机构。自建立以来,开建智能坚持的目标从不曾改变,凭借着其日益成熟的经营理念和专业水平,开建智能必将协助客户获取更强的竞争力。 专业而经验丰富的技术人力资源。开建智能的全体员工拥有专业的技术知识,并在大型系统、结构化网络系统、远程通讯、办公自动化、系统技术支持,和软件编写方面拥有丰富的经验。

系统集成公司简介范文2 中国电信集团系统集成有限公司成立于1996年,是中国电信集团公司的全资子公司。公司旨在为大客户提供ICT整体解决方案、为电信运营商提供应用软件开发和IT服务支撑、为中小企业客户提供综合信息化服务。 公司依托于中国电信全国垂直一体化的三级营销服务体系和运行维护体系,凭借中国电信丰富的网络资源、专业的电信及IT技术、优秀的技术团队、广泛的客户资源和行业知识,致力于为电信运营商、政府、金融、企业提供网络基础设施建设、网络升级及改造、网络管理服务、网络及设备代维服务、设备租赁、应用软件集成及开发、IT 服务支撑等“一站式”服务。 公司在为电信运营商、全国性大客户进行一系列大型网络建设和服务的过程中,归纳总结了一整套项目管理方法,形成了独特、完善的项目管理体系和实力强大的核心团队。公司通过了ISO9001(2000)质量管理体系认证。同时,还获得了信息产业部颁发的“计算机信息系统集成一级资质”和“通信信息网络系统集成甲级资质”,是国内第一家拥有“双一级”资质的系统集成企业。 公司将站在客户的角度思考客户的业务运营,通过对客户业务运营流程以及信息化需求的全面理解,为客户提供创新而适用的综合信息化解决方案和ICT支撑服务,提升客户价值,与客户共同成长。 系统集成公司简介范文3 联通系统集成有限公司是中国联通的全资子公司,注册资金亿元,

SIP协议格式详解

1.SIP 1.1.1.SIP格式 每条SIP消息由以下三部分组成: (1)起始行(Start Line):每个SIP消息由起始行开始。起始行传达消息类型(在请求中是方法类型,在响应中是响应代码)与协议版本。起始行可以是一请求行(请求)或状态行(响应)。 (2)SIP头:用来传递消息属性和修改消息意义。它们在语法和语义上与HTTP头域相同(实际上有些头就是借自HTTP),并且总是保持格式:<名字>:<值>。 (3)消息体:用于描述被初始的会话(例如,在多媒体会话中包括音频和视频编码类型,采样率等)。消息体能够显示在请求与响应中。SIP清晰区别了在SIP起始行和头中传递的信令信息与在SIP 范围之外的会话描述信息。可能的体类型就包括本文将要描述的SDP会话描述协议。

1.1. 2.消息头 Header field where proxy ACK BYE CAN INV OPT REG Accept R - o - o m* o Accept 2xx - - - o m* o Accept 415 - c - c c c Accept-Encoding R - o - o o o Accept-Encoding 2xx - - - o m* o Accept-Encoding 415 - c - c c c Accept-Language R - o - o o o

Accept-Language 2xx - - - o m* o Accept-Language 415 - c - c c c Alert-Info R ar - - - o - - Alter-Info 180 ar - - - o - - Allow R - o - o o o Allow 2xx - o - m* m* o Allow r - o - o o o Allow 405 - m - m m m Authentication-Info 2xx - o - o o o Authorization R o o o o o o Call-ID c r m m m m m m Call-Info ar - - - o o o Contact R o - - m o o Contact 1xx - - - o - - Contact 2xx - - - m o o Contact 3xx d - o - o o o Contact 485 - o - o o o Content-Disposition o o - o o o Content-Encoding o o - o o o Content-Language o o - o o o Content-Length ar t t t t t t Content-Type * * - * * * Cseq c r m m m m m m Date a o o o o o o Error-Info 300-699 a - o o o o o Expires - - - o - o From c r m m m m m m In-Reply-To R - - - o - - Max-Forwards R amr m m m m m m Min-Expires 423 - - - - - m MIME-Version o o - o o o Organization ar - - - o o o Priority R ar - - - o - - Proxy-Authenticate 407 ar - m - m m m Proxy-Authenticate 401 ar - o o o o o Proxy-Authorization R dr o o - o o o Proxy-Require R ar - o - o o o Record-Route R ar o o o o o o Record-Route 2xx,18x mr - o o o o - Reply-To - - - o - - Require ar - c - c c c - o o o o o Retry-After 404, 413,

手游公司简介范文1

手游公司简介范文1 随着手游功能的开发,90%手机上玩游戏的也越来越多了。下面是手游公司简介范文,欢迎参阅。 手游公司简介范文1 深圳市手游界网络有限公司 手游tv是一家关注手机游戏行业发展、为移动开发者、发行商、移动游戏行业提供高价值的业内新闻资讯、数据报告等的公司。公司位于深圳市南山区科技园。 手游tv的主要产品是游戏助手。 手游tv是untiy及国内多家知名游戏媒体的合作伙伴。 手游公司简介范文2 梦想手游 公司概况 “梦想手游”是国内新兴的、专注于移动游戏的发行商。总部设立在广州,核心团队汇聚了数十名拥有手游发行和运营经验的专业人才。 发展历史 从手机游戏的发行、运营到营销各个环节,人员配置,深谙国内ios及安卓平台发行模式。梦想手游已获得国内机构逾亿元投资,在2014年发行数款重量级手游产品,将占据中国手游发行市场一席之地。 金鹰卡通核心动漫ip手游《哪鹅快跑》今日正式上线。日前,金鹰卡通高调宣布将投2亿打造哪鹅ip产业链,而《哪鹅快跑》的上线也意味着梦想手游正式入局金鹰卡通动漫生态圈。

手游公司简介范文3 宝开游戏公司(popcap games),是休闲游戏的开发商和发行商,在2000年由john vechey, brian fiete 和jason kapalka共同建立,总部位于美国的西雅图,截至2009年,已发展到180多个员工。 popcap【宝开】的出名作游戏是bejeweled(宝石迷阵),一个转换宝石的消除类游戏,因该款游戏在2002年获得了cgw hall of fame奖项。 2011年7月,popcap被美国电子游戏产业巨头艺电(ea)收购。 [1] 2014年3月为了适应在移动游戏中为玩家提供在线服务,以及开发新ip的需求宝开进行了裁员。 手游公司简介范文4 中国手游集团有限公司(即中国手游)是国际领先的移动游戏开发商与发行商,专注于移动游戏的开发及发行。 cmge中国手游于2012年9月25日登陆美国纳斯达克(nasdaq:cmge),cmge中国手游是国内首家登陆纳斯达克的手机游戏公司。 cmge中国手游以“公正尽责合作创新”为企业价值观,坚持“用户第一”的理念,致力于为用户提供出色的产品和有效的服务,持续创新,提升玩家体验,创造手机游戏与社会文化相融合的环境,从而实现“移动游戏快乐生活”的品牌倡导。 企业文化 愿景:成为国际一流的移动游戏开发商与发行商 价值观:公正尽责合作创新 品牌倡导:移动游戏快乐生活!

java经典案例与项目

Java学习的经典的案例收集 1:九九乘法表 /* 功能:实现九九乘法表的输出 时间:2013年7月4日 */ public class jiujiuchengfabiaoDemo { public static void main(String[] args) { for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(j+"*"+i+"="+(i*j)+"\t"); } System.out.println(); } } } 结果: 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 2:输出等腰三角形 public class SanJiaoDemo { public static void main(String[] args) { for(int a=1;a<=5;a++){ for(int b=1;b<=5-a;b++){ System.out.print(" "); }

Java九大示例程序

JAVA面向对象九个经典例子程序 1 Hello world例子 (1) 2 类的基本组成示例 (1) 3静态与非静态变量及方法的使用 (3) 4 类继承的例子 (3) 5类的访问修饰符 (4) 6抽象类及其实现示例 (5) 7接口及其实现 (6) 8 抽象类与接口混合编程例子 (7) 9 接口回调与多态性 (8) 1 Hello world例子 package Example; //定义自己的包名 public class Example1 //定义一个类 { public static void main(String[] args) //系统可以执行的main方法,这里是一个公有静态无返回值的方法 { System.out.println("Hello world!"); //调用https://www.doczj.com/doc/1a12747555.html,ng包中的System类的PrintLine方法输出Hello world! } } 2 类的基本组成示例 package Example; class Person { public int age; //声明公共字段age private String name; //声明私有字段name,此时name为类的属性,下面通过公有方法进行访问 public String getName() { return name;

} public void setName(String name) { https://www.doczj.com/doc/1a12747555.html, = name; } public void eat() //定义无参数的eat方法 { System.out.println("Person can eat"); } public void eat(String s) //定义带参数的eat方法,实现方法重载 { System.out.println("Person can eat"+s); } public Person() //定义无参构造函数,注意无返回值定义,方法与类同名 { } public Person(int age, String name) //重写一个带参数构造函数,注意无返回值定义,方法与类同名 { this.age = age; //前一个age为对象的字段,由this指定,后一个age为函数形参 https://www.doczj.com/doc/1a12747555.html, = name; //前一个name为对象的属性,由this指定,因为在本类中可直接访问,后一个name为函数形参 } } public class Example2 { public static void main(String[] args) { Person person1 = new Person(); //调用类的无参构造函数 person1.age = 20; //给对象的公有字段直接赋值 person1.setName("zhangsan"); //必须使用公共方法才能给对象的属性赋值 System.out.println("第一个人信息,姓名:"+person1.getName()+"年 龄:"+person1.age); person1.eat(); //调用对象的无参方法 Person person2 = new Person(18, "lisi");//调用类的有参构造函数 System.out.println("第二个人信息,姓名:"+ person2.getName() + "年龄:"+ person2.age); person2.eat(" 馒头"); //调用对象的有参方法 } }

相关主题
文本预览
相关文档 最新文档