当前位置: 首页 > wzjs >正文

淘宝网那样的网站模板报告王妃

淘宝网那样的网站模板,报告王妃,在线商城怎么弄的,搜索引擎优化人员优化使用场景使用步骤 引入模块组装&发送数据消费数据故障转移 使用场景 异步日志处理:将 OpenSIPS 中的 SIP 信令日志、通话记录(CDR)等数据发送到 Kafka 队列中。 事件通知与监控:利用 OpenSIPS 的 event_interface 模块将 S…
  • 使用场景
  • 使用步骤
    • 引入模块
    • 组装&发送数据
    • 消费数据
    • 故障转移

使用场景

在这里插入图片描述

  1. 异步日志处理:将 OpenSIPS 中的 SIP 信令日志、通话记录(CDR)等数据发送到 Kafka 队列中。

  2. 事件通知与监控:利用 OpenSIPS 的 event_interface 模块将 SIP 事件(如呼叫建立、断开、注册等)推送到 Kafka

OpenSIPS中事件接口有以下类型:

  • EVENT_DATAGRAM - Publish JSON-RPC notifications using UDP, stable
  • EVENT_FLATSTORE - Text/File backend for events, stable
  • EVENT_KAFKA - Publish JSON-RPC notifications/generic messages to Apache Kafka , stable
  • EVENT_STREAM - Publish JSON-RPC notifications using TCP, stable
  • EVENT_ROUTE - Route triggering based on events, stable
  • EVENT_ROUTING - Event-based routing, stable
  • EVENT_RABBITMQ - Publish JSON-RPC notifications using AMQP over TCP , stable
  • EVENT_VIRTUAL - Aggregator of event backends (failover & balancing), stable
  • EVENT_XMLRPC - Event XMLRPC client module , stable
  1. 分布式消息队列集成:在复杂的 VoIP 架构中,OpenSIPS 可以通过 Kafka 与其他服务(如计费系统、CRM 系统)解耦

  2. 计费与数据分析:OpenSIPS 生成的 CDR(Call Detail Records)可以通过 Kafka 推送至后端计费系统

  3. 故障隔离与重试机制:在 OpenSIPS 调用外部服务时(如鉴权、计费接口),如果目标服务不可用,可以将请求暂存到 Kafka

  4. 微服务架构下的通信桥梁:在基于微服务的 VoIP 架构中,OpenSIPS 作为 SIP 边界网关,可通过 Kafka 与其他微服务(如认证服务、媒体控制服务)进行异步通信

  5. 消息广播与事件驱动架构:OpenSIPS 可将特定的 SIP 事件广播到 Kafka 的多个主题,供不同的下游服务消费

  6. 性能优化与流量削峰:在高并发场景下,Kafka 可以作为缓冲层,缓解 OpenSIPS 与后端系统之间的流量压力

  7. 自定义业务逻辑扩展:通过 Kafka 与外部业务逻辑模块解耦,可以在不影响 OpenSIPS 核心逻辑的前提下,灵活扩展新的业务功能

使用步骤

在这里插入图片描述

引入模块

loadmodule "event_kafka.so"
modparam("event_kafka", "broker_id", "[k1]127.0.0.1:9092/opensips?g.linger.ms=100&t.acks=all")

链接语法:'kafka:' brokers '/' topic ['?' properties]
properties语法:'g.'|'t.' property '=' value ['&' 'g.'|'t.' property '=' value] ...
可以设置的proroperty参考官方说明

组装&发送数据

        $json(sql_obj) := "{}";$json(sql_obj/table) = 'acc';$json(sql_obj/method) = $param(method);$json(sql_obj/fromTag) = $param(from_tag);$json(sql_obj/toTag) = $param(to_tag);$json(sql_obj/callid) = $param(callid);$json(sql_obj/sipCode) = $param(sip_code);$json(sql_obj/sipReason) = $param(sip_reason);$json(sql_obj/time) = $param(time);$json(sql_obj/duration) = $param(duration);$json(sql_obj/msDuration) = $param(ms_duration);$json(sql_obj/setuptime) = $param(setuptime);$json(sql_obj/created) = $param(created);kafka_publish("k1", $json(sql_obj), $ci, "kafka_report");

可异步监听回执

route[kafka_report] {xlog("[$avp(kafka_id)] status=$avp(kafka_status) key=$avp(kafka_key) msg=$avp(kafka_msg)\n");...
}

消费数据

$ bin/kafka-console-consumer.sh   --bootstrap-server 127.0.0.1:9092   --topic opensips --from-beginning{ "status": 1, "dlg_id": "17091151056627", "callid": "1-14809@127.0.0.1", "from_uri": "sip:20250610@127.0.0.1:5060", "from_tag": "1", "to_uri": "sip:tt061013776167200@127.0.0.1:5900", "caller_sock": "127.0.0.1:5900", "caller_contact": "sip:20250610@127.0.0.1:5060", "start_time": 0, "timeout": 0, "caller_in": "20250610", "callee_in": "tt061013776167200", "caller_gateway": "46", "callee_gateway": "9", "src_ip": "127.0.0.1", "dst_ip": "127.0.0.1" }
{ "status": 5, "dlg_id": "17091151056627", "to_uri": "sip:tt061013776167200@127.0.0.1:5900", "to_tag": "1", "callee_contact": "sip:127.0.0.1:5080;transport=UDP", "start_time": "1749459233", "timeout": "1749462833", "caller_in": "20250610", "callee_in": "tt061013776167200", "caller_gateway": "46", "callee_gateway": "9", "src_ip": "127.0.0.1", "dst_ip": "127.0.0.1" }
{ "table": "acc", "method": "INVITE", "fromTag": "1", "toTag": "1", "callid": "1-14809@127.0.0.1", "sipCode": "200", "sipReason": "OK", "time": 1749459233, "duration": 4, "msDuration": 3411, "setuptime": 8, "created": 1749459225, "srcIp": "127.0.0.1", "dstIp": "127.0.0.1", "caller": "20250610", "callee": "331213776167200", "callStartTime": "1749459233.433263", "callEndTime": "1749459236.844957", "callerIn": "20250610", "calleeIn": "tt061013776167200", "callerOut": "20241213ob16701", "calleeOut": "calleeout330613776167200", "callergateway": "46", "calleegateway": "9", "calllevel": "0", "routinglevel": "0", "calleraccount": "1", "calleeaccount": "2", "callerCallid": "1-14809@127.0.0.1", "calleeCallid": "", "area": "", "endSide": "1", "endCode": "9201", "endReason": "caller hang up", "realDuration": "3411", "through_jt": "1", "callerproductid": "", "calleeproductid": "", "routing_path": "9-200-0;", "node_addr": "127.0.0.1:5900", "multi_gw": "", "s_timeout": "", "event_time": "1749459236.847516" }
{ "status": 6, "dlg_id": "17091151056627", "callid": "1-14809@127.0.0.1" }

故障转移

引入event_virtual/event_flatstore,将事件消息通过队列传递,并且支持故障转移

异常信息 ->> EVENT ->> KAFKA(故障链路 ->> EVENT_VIRTUAL ->> EVENT_FLATSTORE)

loadmodule "event_flatstore.so"
loadmodule "event_kafka.so"
loadmodule "event_virtual.so"startup_route {subscribe_event("E_MY_EVENT", "virtual:FAILOVER kafka:127.0.0.1:9092/opensipsfailover flatstore:/var/log/myevents");
}
http://www.dtcms.com/wzjs/572168.html

相关文章:

  • 烟台城乡建设局官方信息网站专业积分商城网站制作
  • 保山 网站建设网站开发预算报表
  • 聊城市建设局网站怎么查网站备案号
  • 上海建设工程招投标网站wordpress 登陆访问
  • 湘潭公司做网站河南工程建设
  • 旅游网站建设的方法wordpress切换回老的编辑器
  • 国外房产中介网站上海网站建设 网站开发
  • 选服务好的网站建设公司微商广告推广
  • 广州网站建设公司怎么挑选想自学广告设计怎么学
  • 提供营销网站建设公司代注册公司要多少钱
  • 公司网站网站不备案室内设计网上接单
  • 建完网站怎样维护怎么让网站能被百度到
  • 发外链的网站排名职业做网站游戏的
  • 域名备案与网站不一致长宁集团网站建设
  • 加盟网站制作运营.net开发网站怎么样
  • 学校网站制作素材做网站的分辨率
  • 如何利用淘宝建设网站挣钱温州平台网站建设
  • 网站开发销售话术网站建设 招聘需求
  • 网站开发组合 所有组合郑州制作网站
  • 深圳手机网站建设哪家好wordpress这么写一个api
  • 有哪些可以做包装袋的网站洛阳哪里做网站
  • 做网站价位个人网站做支付宝收款
  • 专业建站公司报价北京信息网站建设
  • 网站ui设计报价单同步wordpress到微信
  • 网站导航设计原则成都房产信息查询官方网站
  • 百度快照怎么没有了南昌seo排名技术
  • 如何创建电子商务网站南京网站推广哪家便宜
  • 南昌网站建设报价单在建工程项目查询
  • 中国建设银行网站登录不了建设英文网站多少钱
  • 加油站网站建设常用网站推荐