使用OpenSER构建电话通信系统——第四章(1)

近4000张真实城市场景行人数据集:YOLO训练实战指南 行人检测是计算机视觉在智能驾驶与机器人感知中的基础任务,其核心挑战在于模型对真实道路场景的鲁棒性——尤其在小目标、遮挡、光照变化及中国特有交通参与者(如外卖骑手、接娃家长)下的泛化能力。本文围绕轻量化、高覆盖、强落地性的近4000张实采图像,系统阐释如何构建面向YOLO系列模型的高质量训练数据集:从四维场景采样策略(光照-遮挡-尺度-姿态)出发,解析标注规范对检测精度的关键影响,并说明数据增强需服务于真实干扰源(雨痕、动态模糊、对比度衰减),而非盲目堆叠。该数据集专为已掌握YOLO训练流程的算法工程师、嵌入 阅读详情

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!

第四章:OpenSER标准配置(OpenSER Standard Configuration)

OpenSER的标准配置文件安装在/etc/openser/openser.cfg。它是OpenSER的最简单的配置文件之一。而且它还是一个可以开始进行解释OpenSER功能的理想脚本。和一些基本的模块,参数和函数一样,还有一些区段是你应该熟悉了解的。

这个章节结束后,你将能够:

l        识别出openser.cfg配置文件的各个区段

l        识别出标准配置的限制

l        使用ngrep工具跟踪SIP事务

l        使用XLOG模块记录路由过程

l        使用append_hf命令标记ngrep工具跟踪的包

标准配置是一个好的出发点。它拥有最小化的功能集合,不支持验证,所以你可以不使用密码就可以连接你的SIP话机。不管怎样,你都可以从一部话机呼向另一部,我们将在之后测试之。

我们在哪?(Where Are We?)

我们要再一次提到的是,VoIP服务提供商的解决方案中有许多的部件。为了失去对整体的把握,我们会在大多数的章节中展示这幅图片。在这一章中,我们仍然会与标准配置的SIP代理部件打交道。

分析标准配置(Analyzing the Standard Configuration)

下面是OpenSER 1.2.2 版本的标准配置的展示。在这一节,我们将开始描述标准配置中的每一行的命令和函数。

#

# $Id: openser.cfg 1676 2007-02-21 13:16:34Z bogdan_iancu $

 #

 #simple quick-start config script

 #Please refer to the Core CookBook at http://www.openser.org/dokuwiki/

 doku.php

 #for a explanation of possible statements, functions and parameters.

 #

 # ----------- global configuration parameters ------------------------

 debug=3             # debug level (cmd line: -dddddddddd)

 fork=yes

 log_stderror=no     # (cmd line: -E)

 children=4

 port=5060

 #uncomment the following lines for TLS support

 #disable_tls = 0

 #listen = tls:your_IP:5061

 #tls_verify_server = 1

 #tls_verify_client = 1

 #tls_require_client_certificate = 0

 #tls_method = TLSv1

 #tls_certificate = "//etc/openser/tls/user/user-cert.pem"

 #tls_private_key = "//etc/openser/tls/user/user-privkey.pem"

 #tls_ca_list = "//etc/openser/tls/user/user-calist.pem"

 # ------------------ module loading ----------------------------------

 #set module path

 mpath="/lib/openser/modules/"

 #Uncomment this if you want to use SQL database

 #loadmodule "mysql.so"

 loadmodule "sl.so"

 loadmodule "tm.so"

 loadmodule "rr.so"

 loadmodule "maxfwd.so"

 loadmodule "usrloc.so"

 loadmodule "registrar.so"

 loadmodule "textops.so"

 loadmodule "mi_fifo.so"

 # Uncomment this if you want digest authentication

 # mysql.so must be loaded !

 #loadmodule "auth.so"

 #loadmodule "auth_db.so"

 # ----------------- setting module-specific parameters ---------------

 # -- mi_fifo params --

 modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")

 # -- usrloc params --

 modparam("usrloc", "db_mode", 0)

 # Uncomment this if you want to use SQL database

 # for persistent storage and comment the previous line

 #modparam("usrloc", "db_mode", 2)

 # -- auth params --

 # Uncomment if you are using auth module

 #

 #modparam("auth_db", "calculate_ha1", yes)

 #

# If you set "calculate_ha1" parameter to yes (which true in this

config),

# uncomment also the following parameter)

#

 #modparam("auth_db", "password_column", "password")

 # -- rr params --

 # add value to ;lr param to make some broken UAs happy

 modparam("rr", "enable_full_lr", 1)

 # -------------------------     request routing logic -------------------

 # main routing logic

 route{

           # initial sanity checks -- messages with

           # max_forwards==0, or excessively long requests

           if (!mf_process_maxfwd_header("10")) {

                   sl_send_reply("483","Too Many Hops");

                   exit;

           };

           if (msg:len >= 2048 ) {

                   sl_send_reply("513", "Message too big");

                   exit;

           };

           # we record-route all messages -- to make sure that

           # subsequent messages will go through our proxy; that's

           # particularly good if upstream and downstream entities

           # use different transport protocol

           if (!method=="REGISTER")

                   record_route();

            # subsequent messages withing a dialog should take the

           # path determined by record-routing

           if (loose_route()) {

                   # mark routing logic in request

                   append_hf("P-hint: rr-enforced\r\n");

                    route(1);

           };

           if (!uri==myself) {

                   # mark routing logic in request

                   append_hf("P-hint: outbound\r\n");

                   # if you have some interdomain connections via TLS

                   #if(uri=~"@tls_domain1.net") {

                   #        t_relay("tls:domain1.net");

                   #        exit;

                  #} else if(uri=~"@tls_domain2.net") {

                  #         t_relay("tls:domain2.net");

                  #         exit;

                   #}

                  route(1);

          };

          # if the request is for other domain use UsrLoc

          # (in case, it does not work, use the following command

          # with proper names and addresses in it)

          if (uri==myself) {

                   if (method=="REGISTER") {

                           # Uncomment this if you want to use digest

                             authentication

                           #if (!www_authorize("openser.org",

                                 "subscriber")) {

                           #         www_challenge("openser.org", "0");

                           #         exit;

                           #};

                           save("location");

                           exit;

                  };

                   lookup("aliases");

                  if (!uri==myself) {

                           append_hf("P-hint: outbound alias\r\n");

                           route(1);

                  };

                  # native SIP destinations are handled using our

                      USRLOC DB

                  if (!lookup("location")) {

                           sl_send_reply("404", "Not Found");

                           exit;

                  };

                  append_hf("P-hint: usrloc applied\r\n");

          };

          route(1); 

}

 route[1] {

          # send it out now; use stateful forwarding as it works

          # reliably even for UDP2TCP

          if (!t_relay()) {

                  sl_reply_error();

          };

        exit;

}

这个标准的配置是最简单的可以使用的配置。我们将以它作为出发点,然后再在接下来的章节中循序渐进的包含新的命令和函数。使用这个配置,客户端能够进行注册(不需要认证)并且UACs能够互相之间进行沟通。注册服务器,定位服务器和代理服务器使用最小配置进行工作。下面我们将解释一些脚本中的引用。

debug=3 # debug level (cmd line: -dddddddddd)

设置日志级别(Set log level):它是一个-3到4之间的一个数。默认为2。数越大,那么写道日志中的信息就越多。不过如果将其设为4,那么系统的性能可能会变得很差。日志级别是:

l        L_ALERT(-3)——这个级别只被用来报告需要立即响应的错误。

l        L_CRIT(-2)——这个级别只被用来报告造成危险状况的错误。

l        L_ERR(-1)——这个级别用来报告数据处理过程中不会造成系统故障的错误。

l        L_WARN(1)——这个级别用来写入一些警告消息。

l        L_NOTICE(2)——这个级别用来报告不寻常的状况。

l        L_INFO(3)——这个解别用来写入一些提示信息的消息。

l        L_DBG(4)——这个级别用来写入用来调试的消息。

fork=yes

fork参数用来定义OpenSER进程是运行在前台还是后台。运行在后台则设置fork=yes。有时候你会发现如果在前台运行对于定位脚本错误是非常有用的。如果fork被禁用的话,OpenSER将不能够同时监听多个接口,TCP/TLS支持功能将被自动禁用。在单进程模式下,只有一个UDP接口被接受。

log_stderror=no # (cmd line: -E)

如果被设为yes,服务器将打印调试信息到标准错误输出。如果设为no,syslog会被使用。

Children=4

“children”核心参数告诉OpenSER每个创建处理接入请求的进程的接口有多少孩子进程。四个进程对于大多数系统来书都是很好的一个出发点。这个参数只适用于UDP接口,对于TCP没有影响。

Port=5060

如果在监听参数中没有被指明,那么这个参数就是默认使用的端口号。

mpath="/lib/openser/modules/"

设置模块搜索路径。这可以被用来简化模块的加载。

loadmodule "sl.so"

loadmodule "tm.so"

loadmodule "rr.so"

loadmodule "maxfwd.so"

loadmodule "usrloc.so"

loadmodule "registrar.so"

loadmodule "textops.so"

loadmodule "mi_fifo.so"

上面的这些行是OpenSER加载外部的模块。这个时候,只有需要的那些模块被加载了。其余附加的功能需要加载其他诸如RADIUS和MYSQL的模块。所有这些模块都有一个README文件来描述其功能。

modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")

创建FIFO文件及其名称用来监听和读取外部命令。

modparam("usrloc", "db_mode", 0)

modparam核心命令配置了相应的模块。上面的usrloc模块负责定位服务。当一个用户注册时,它用来保存定位信息,也就是我们知道的变量db_mode表明的相对于位置的AOR(Address of Record)。为0表示是内存。所以如果你关闭了服务器,那么你将丢失所有的注册记录。表的位置靠的就是db_mode变量。将db_mode设置为0表明这个数据将被保存到数据库中。换句话说,如果OpenSER关闭,所有记录丢失。

modparam("rr", "enable_full_lr", 1)

上面的语句设置rr(Record Routing)模块的enable_full_1r变量为1。它告诉OpenSER要支持那些不对record_route头域进行管理的SIP客户端。如果设为1,;lr=on将被使用而不是;lr。

Route {

这是SIP请求的路由逻辑的开始。“块(block)”起始于“{”。在这个块中,SIP请求将被处理。通过下面的语句你将看清大概:

# initial sanity checks -- messages with

# max_forwards==0, or excessively long requests

if (!mf_process_maxfwd_header("10")) {

        sl_send_reply("483","Too Many Hops");

        exit;

};

if (msg:len >= 2048 ) {

        sl_send_reply("513", "Message too big");

        exit;

};

当一个请求进入主路由块时,要进行一些检查。

首先检查的是前转(forward)的最大次数。为了避免回环(loop),我们使用mf_process_maxfwd_header()函数来检查包到底传递了多少SIP跳(SIP hops)。如果回环(loop)被发现,那么脚本则使用s1_send_reply()函数发送“483 too many hops”消息。

Msg:len是OpenSER核心用来返回SIP请求长度(单位byte)的函数。这是一个标准的用来检查消息大小限制方法。

if (!method=="REGISTER")

        record_route();

如果不是REGISTER方法,OpenSER将进行record-route。这条消息告诉SIP服务器要处在两个UAC请求的路径当中。

record_route()函数只是简单的增加了一个新的record-route头域。

# Subsequent messages within a dialog should take the

        # Path determined by record-routing

        if (loose_route()) {

               # mark routing logic in request

                append_hf("P-hint: rr-enforced\r\n");

                route(1);

        };

loose_route()函数是用来试着看看请求有没有使用record-route头域进行路由的。这个函数标识的请求将使用最上面的record-route头域的内容进行路由。

如果请求是在同一个对话中,我们将进入if,并前转该包。我们只是简单的前转该请求。我们将调用次级路由块route(1)做这件事,在该块中t_relay()函数将被调用。

按照record-route头域(rr-enforced),append_hf函数将添加一个表明请求被处理的提示。

if (!uri==myself) {

        # mark routing logic in request

        append_hf("P-hint: outbound\r\n");

        # if you have some interdomain connections via TLS

        #if(uri=~"@tls_domain1.net") {

        #       t_relay("tls:domain1.net");

        #       exit;

        #} else if(uri=~"@tls_domain2.net") {

        #       t_relay("tls:domain2.net");

        #       exit;

        #}

        route(1);

};

上面的代码将处理一个我们的代理不处理的域中的请求,if(!uri==myself),使用调用t_relay的route(1)来前转该请求。 默认的情况下,代理只是一个开放式的中继器。在下面的章节中我们将讨论怎样改进带外通话(outbound call)的处理过程。将请求前转至其他的代理是很重要的;然而,还应该进行一些合适的标识检查。现在,我们将处理指向被我们的SIP代理处理的域的请求。

if (uri==myself) {

        if (method=="REGISTER") {

                # Uncomment this if you want to use digest

                  authentication

                #if (!www_authorize("openser.org",

                  "subscriber")) {

                #        www_challenge("openser.org", "0");

                #        exit;

                #};

                save("location");

                exit;

        };

如果是REGISTER请求,使用save(“location”)将AOR保存至位置表(location table)中。理解两个概念至关重要。验证被取消(www_authorize被注释掉)和因为我们没有把数据库安装在SIP代理上,所以定位数据库不是持续起作用的。

lookup("aliases");

if (!uri==myself) {

        append_hf("P-hint: outbound alias\r\n");

        route(1);

};

别名(alias)是可选的URI(比如,8590@voffice.com.br可以是原有URI flavio@voffice.com.br的别名)。lookup(“aliases”)函数寻找在请求中表示的URI的典型的URI。如果该URI被找到,则在操作进行前用其取代R-URI。最终的URI既可以被放置在我们域的里面,也可以是外面。如果在外面,那么系统只是简单的将包前转到负责该域的SIP代理上。如果在外面则开始请求的处理。

if (!lookup("location")) {

        sl_send_reply("404", "Not Found");

        exit;

};

append_hf("P-hint: usrloc applied\r\n");

lookup(“location”)函数将试着恢复R-URI的AOR。如果AOR被定位到(UA注册了)那么UA的ip地址将替代R-URI。如果没有找到,我们只是简单的发回错误消息“404 Not Found”。

route(1);

如果找到AOR我们将使用route(1)结束;

route[1] {

         # send it out now; use stateful forwarding as it works

reliably

         # even for UDP2TCP

         if (!t_relay()) {

                 sl_reply_error();

         };

         exit;

}

最后,路由块被调用。t_relay()函数前转基于请求URI的有状态的请求。域部分将使用NAPTR,SRV和A records等来进行解析。这个函数是由TRANSACTION模块(tm.so)提供的,负责发送请求并处理重发和响应。如果请求不能被成功的被发送到目的地,错误信息将由t_relay()函数自动产生。如果错误产生,s1_reply_error()将发送响应信息给UA。

Using标准配置(Using the Standard Configuration)

在这个实验中,我们将使用协议分析机来抓取一个完整的SIP通话。我们将分析消息头和消息流程。你可以创建一个PC和带有两个UAC的实验环境。UAC可以是软电话,ATA,或是IP电话。

|           调整以满足你的实验需要。                                                               |

|                  1:使用ngrep开始抓取包。如果你没有安装ngrep,               |

|                         使用下面的命令安装:                                                       |

|                         apt-get install ngrep                                                           |

|                  2:使用下面命令抓取包:                                                         |

|                         ngrep -p -q -W byline port 5060 > test.txt                             |

|                  3:配置UAC(软电话,IP电话,或ATA)。                                |

使用下面的描述来配置第一个UAC:

sip proxy 10.1.x.y – IP of your proxy

 user: 1000

 password: 1000

  使用下面的描述来配置第二个UAC:

sip proxy 10.1.x.y – IP of your proxy

 user: 1001

password: 1001

  在完成配置后,你需要注册IP话机。不是所有的设备都会做自动注册的操作。

  1. 使用下面的命令检查电话是否注册上:

                     openserctl u1 show

  1. 用第一个UAC拨打1001。第二个UAC会振铃。
  2. 验证抓取的包没有相对于INVITE请求的“407- Proxy authentication required”错误和相对于REGISTER请求的“401- Unauthorize”错误。这证明了不需要验证。
  3. 你可以使用如下命令查看抓包:

more test.txt

<script>window._bd_share_config={"common":{"bdsnskey":{},"bdtext":"","bdmini":"2","bdminilist":false,"bdpic":"","bdstyle":"0","bdsize":"16"},"share":{}};with(document)0[(getelementsbytagname('head')[0]||body).appendchild(createelement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new date()/36e5)];</script>
阅读(1259) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
独创改进 | RT-DETR 引入 Asymptotic Hybrid Encoder | 渐进混合特征解码结构 独创改进🚀! | RT-DETR 引入 Asymptotic Hybrid Encoder | 渐进混合特征解码结构 阅读详情

相关推荐

【编译原理】LL(1)分析方法 生成语法树(c++实现)

基本流程 输入文法->消除左递归->提取左公共因子->求FIRST集->求FOLLOW集->LL(1)分析表->表驱动的预测语法分析过程->输出语法分析结果和语法树

qq_43417265的博客 1万+

转ubuntu--sip服务器openser 的搭建

http://jituo666.blog.163.com/blog/static/294817212010224468542/ ubuntu--sip服务器openser 的搭建   2010-03-24 16:06:08|  分类: VOIP related |字号 订阅 本文作者:宣寄托 1,搭建sip测试用的环境(ubuntu 9.10/9.04)

killmice的专栏 4343

ISO26262 功能安全各个阶段测试要求

1. 开发过程说明 系统层面:包括软硬件集成测试、系统集成测试以及整车测试。 硬件层面:包括硬件集成与测试。 软件层面:单元测试、集成测试。 2. 功能安全总体要求 2.1 各项指标 2.2 诊断覆盖度举例 针对一个信号举例说明: 3. 功能安全测试要求 3.1 测试计划 核心内容应包括, 测试对象:需要测试的对象描述,以及测试的范围描...

AgingMoon的博客 1万+

使用OpenSER构建VoIP通话 (转载)

使用OpenSER构建VoIP通话   使用OpenSER构建电话通信系统——第一章(1)       前言:openser已经成为opensips项目,但是本书的内容绝大部分是适合于学习相关知识的。所以还是针对原书原封不动的做的翻译。   使用OpenSER

Android 开发 6668

GIS坐标系转换以及空间校正和地理配准

许多小伙伴都对坐标系,投影这类问题迷迷糊糊,我之前也一样,现在总结一下。 坐标系的转换1.为什么要进行坐标系的转换?2. 不同坐标系的介绍1.地理坐标系我国常见的地理坐标(1).北京54坐标系(2).西安80坐标系(3).WGS-84坐标系(4).大地2000坐标系2.投影坐标系我国常用的投影坐标系(1) UTM投影(2) 高斯-克吕格投影(3) 兰伯特投影(4) 阿尔伯斯投影投影坐标系的选择3. 坐标系的转换1.已知坐标系之间的转换1.1 两坐标系的参考椭球相同1.2 两坐标系的参考椭球不一致,但是GIS

m0_47258611的博客 8913

最优化方法 25:PDHG

前面的章节要么从原始问题出发,要么从对偶问题出发,通过求解近似点或者一个子优化问题进行迭代,而且推导过程中我们发现根据问题的参数特征,比如矩阵 AAA 是瘦高型的还是矮胖型的,采用对偶和原始问题的复杂度会不一样,可以选择一个更简单的。而这一节,我们将要从原始对偶问题出发来优化,什么是原始对偶问题呢?就是原始优化变量和对偶优化变量(原始函数和共轭函数)混合在一块,看下面的原理就知道了。 1. 原始对偶问题 现在考虑原始优化问题,其中 f,gf,gf,g 为闭凸函数 min⁡f(x)+g(Ax) \min \q

Glooow的博客 4602

Kamailio SIP服务器的配置与运行

Kamailio(原名OpenSER)是一款基于SIP(Session Initiation Protocol)协议的开源服务器,适用于构建VoIP(Voice over Internet Protocol)、视频会议、即时消息和 presence服务等实时通信应用。它基于 GPL 许可证发布,支持多种操作系统,如 Linux、FreeBSD 等。

ziven的博客 2916

排列显示阿拉伯语、数字及英文时的处理方法

这段时间参与开发沙特阿拉伯的网站模板,模板使用的语言是阿拉伯语,其显示顺序为从右到左,而中文、数字及英文的显示顺序为从左到右 ,所以当遇到一行文字内既有阿拉伯语又有数字和英文时会出现语序混乱的问题,如 期待显示的文案为: 按顺序写入,对应的代码如以下,其中currency_pay为变量,值为356SAR <span>الدفع الفعلي:{{currency_pay}}</span> 显示为 الدفع الفعلي : 356SAR 金额356和货币符号SAR分开了,这样显

llq886的博客 5806

使用OpenSER构建电话通信系统——第八章(2)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!实现呼叫盲转(Implementing Blind Call Forwarding) <p class="MsoNormal" style="text-indent:21.0pt;line-height:22.0pt;mso-line-height-rule: exactly"><span style="font-family:宋体;m

老黑 682

OpenClaw对接本地大模型:Llama3/Qwen/ChatGLM全适配,完全私有化部署

OpenClaw对接本地大模型,是企业级AI智能体落地的必经之路——它不仅解决了数据隐私和合规问题,还能大幅降低成本、提升响应速度、实现定制化。这篇文章我给大家完整拆解了两套部署方案:Ollama(新手首选,5分钟搞定)和vLLM(生产环境首选,高性能),覆盖了Llama3/Qwen/ChatGLM三大主流模型,还有真实的落地案例、高级优化、踩坑避坑指南,看完你就能零代码完成完全私有化的部署。从零开发自定义工具,给OpenClaw添加专属业务能力;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 809

卫星遥感影像处理:地物分类与变化检测

卫星遥感影像处理:地物分类与变化检测​ ,人工智能,计算机视觉,大模型,AI,卫星遥感技术通过搭载在卫星上的传感器获取地球表面的电磁波信息,为地物分类与变化检测提供了宏观、动态的观测数据。随着高分辨率遥感卫星(如高分系列、哨兵系列)的发展,遥感影像的空间分辨率、光谱分辨率和时间分辨率不断提升,为精准地物识别和动态变化监测奠定了基础。地物分类旨在将遥感影像中的像元按地表覆盖类型(如植被、水体、建筑、农田等)进行分类,而变化检测则通过对比不同时期的影像,识别地表覆盖的变化区域(如城市扩张、森林砍伐、土地退化等)

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 17万+

使用OpenSER构建电话通信系统——第五章(3)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!Openserctl shell脚本Openserctl工具是安装在/usr/sbin上的shell脚本。被用来使用命令行的方式来对OpenSER进行管理。可以用来进行:l         启动,终止,重启OpenSERl         展示,授权,撤销ACLsl         添加,删除,列出别名l         添加,删除,配置AVP

老黑 1632

2026年华为od机试真题题库

OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)

面试高手的博客 19万+

提供《使用OpenSER构建电话通信系统》中文翻译版本下载

提供《使用OpenSER构建电话通信系统》中文翻译版本下载    感谢网友将这本《使用OpenSER构建电话通信系统》整理城doc文档,方便了大家,在此非常之感谢,感谢这个开源的世界,感谢互联网。《使用OpenSER构建电话通信系统》 管理员在2009年8月13日编辑了该文章文章。 -->

老黑 865

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

使用OpenSER构建电话通信系统——第三章(1)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!这一章前半部分的内容是介绍系统安装和openser安装的,图片较多,而本blog文章中嵌入图片太过费时,所以直接将pdf文档链接公布如下,请直接下载。使用OpenSER构建电话通信系统——第三章(1) 管理员在2009年8月13日编辑了该文章文章。 -->

老黑 436

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

使用OpenSER构建电话通信系统——第七章(3)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!实验——使用LCR特性(Lab——using the LCR Feature)<p class="MsoNormal" style="text-indent:21.0pt;line-height:22.0pt;mso-line-height-rule: exactly"><span style="font-family:宋体;mso-asci

老黑 804

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

使用OpenSER构建电话通信系统——第八章(3)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!     检查配置文件(Ispecting the Configureation File) 我们的脚本正变得难以debug。现在,让我们介绍XLOG模块。它实现了XLOG函数。这个函数与LOG()函数很相似,但是它允许你在消息中使用诸如请求URI($ru)的伪变量。下面有一个使用XLOG的例子。 loadmodule "xlog

老黑 725

使用OpenSER构建电话通信系统——第一章(1)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!前言:openser已经成为opensips项目,但是本书的内容绝大部分是适合于学习相关知识的。所以还是针对原书原封不动的做的翻译。使用OpenSER构建电话通信系统 Building Telephony Systems with OpenSER第一章:SIP介绍(Introduction to SIP) 会话初始化协议是互联网工程

老黑 763

使用OpenSER构建电话通信系统——第五章(1)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!第五章:用MySQL添加认证(Adding Authentication with MySQL)在这一章中我们将学到如何使用几种数据库后端来对SIP请求进行鉴定并提供诸如位置和别名表等数据的持续性。最主要的是,我们将使用MySQL来做每一件事。这一章分为两个部分。第一个部分,我们将学到如何实现认证,第二部分我们将学到如何处理不同方向的通话。这一

老黑 1086

使用OpenSER构建电话通信系统——第六章(1)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!<h1 style="mso-line-height-alt:5.0pt;page-break-before:always;mso-list:none; tab-stops:21.0pt"><span lang="AR-SA" style="font-size:14.0pt;font-family:宋体; mso-ascii-font-fa

老黑 866

使用OpenSER构建电话通信系统——第七章(1)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!<h1 style="mso-line-height-alt:5.0pt;page-break-before:always;mso-list:none; tab-stops:21.0pt"><span lang="AR-SA" style="font-size:14.0pt;font-family:宋体; mso-ascii-font-fa

老黑 603

使用OpenSER构建电话通信系统——第三章(2)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!OpenSER v1.2 目录结构 <p class="MsoNormal" style="text-indent:21.0pt;line-height:22.0pt;mso-line-height-rule: exactly"><span lang="AR-SA" style="mso-bidi-font-size:10.5pt;f

老黑 501

使用OpenSER构建电话通信系统——第五章(2)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!安装 MySQL支持 <p class="MsoNormal" style="text-indent:21.0pt;line-height:22.0pt;mso-line-height-rule: exactly"><span lang="AR-SA" style="mso-bidi-font-size:10.5pt;font-fami

老黑 596

使用OpenSER构建电话通信系统——第四章(2)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!路由基础(Routing Basics) <p class="MsoNormal" style="text-indent:21.0pt;line-height:22.0pt;mso-line-height-rule: exactly"><span lang="AR-SA" style="mso-bidi-font-size:10.5pt

老黑 548

使用OpenSER构建电话通信系统——第八章(1)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!<h1 style="mso-line-height-alt:5.0pt;page-break-before:always;mso-list:none; tab-stops:21.0pt"><span lang="AR-SA" style="font-size:14.0pt;font-family:宋体; mso-ascii-font-fa

老黑 747

使用OpenSER构建电话通信系统——第七章(2)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!实验——用Asterisk做PSTN网关(Lab——Using Asterisk as a PSTN Gateway) <p class="MsoNormal" style="text-indent:21.0pt;line-height:22.0pt;mso-line-height-rule: exactly"><span lang="

老黑 512
上一篇: 使用OpenSER构建电话通信系统——第三章(2)
下一篇: 使用OpenSER构建电话通信系统——第四章(2)
老黑徒
博客等级 码龄23年 9粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值