首页 > 其他分享 >【VoIP】PJSIP客户端支持Ringback tone(来电时,对端听到的响铃)

【VoIP】PJSIP客户端支持Ringback tone(来电时,对端听到的响铃)

时间:2024-10-23 20:45:50浏览次数:6  
标签:status tone 响铃 对端 pjsip PJ 信令 endpt 客户端

背景

基于PJSIP协议栈里的pjsip-apps实现SIP客户端,使用中发现其他SIP客户端给该客户端打电话时,其他客户端听不到响铃声

问题分析

首先查了下文档,没有没有找到直接的配置项,或者接口使用说明,只能正面分析。
Ringback tone原理:SIP主叫端收到被叫发送的180/183信令后,播放本地或者接收服务端的响铃音,怀疑是不是少发了信令,使用sngrep抓包分析发现pjsip-apps被叫过程中并未发送180 Ringing信令,于是试着在incoming时增加发送180信令,对端可以正常听到响玲音了。

解决方案

直接上代码

static void on_incoming_call(pjsua_acc_id acc_id, pjsua_call_id call_id, pjsip_rx_data *rdata)
{
	...
	//其他代码

    pjsip_msg     *msg;
    pj_status_t    status;
    pjsip_tx_data *tdata;

    pjsip_endpoint *endpt = pjsua_get_pjsip_endpt();
    status = pjsip_endpt_create_response(endpt, rdata, PJSIP_SC_RINGING, NULL, &tdata);
    if (status != PJ_SUCCESS) {
        PJ_LOG(4, (LOG_TAG, "pjsip_endpt_create_response fail status:%d", status));
    }

    status = pjsip_endpt_send_response2(endpt, rdata, tdata, NULL, NULL);
    if (status != PJ_SUCCESS) {
        PJ_LOG(4, (LOG_TAG, "pjsip_endpt_send_response2 fail status:%d", status));
    }
}

标签:status,tone,响铃,对端,pjsip,PJ,信令,endpt,客户端
From: https://blog.csdn.net/MandeRen/article/details/143192327

相关文章

  • fastStone Capture截图神器,你想要的功能它都有!
    前言大家好,我是小徐啊。从今天开始,小徐将介绍很多Java开发领域相关的软件工具资源,欢迎大家关注。今天,介绍一款非常小巧,但功能十分强大的图片软件,fastStoneCapture。这款工具,主要是图片的截图,编辑,以及屏幕录屏等功能,可以说非常强大了。文末附获取方式。安装首先,该软件是支持免......
  • THM-Vulnerability Capstone
    首先收集信息,获取版本号Whatisthenameoftheapplicationrunningonthevulnerablemachine?FuelCMSWhatistheversionnumberofthisapplication?1.4WhatisthenumberoftheCVEthatallowsanattackertoremotelyexecutecodeonthisapplicati......
  • cornerstone中RAFT的buffer的实现
    1.概览:谈到raft协议实现就绕不开网上流行的mit6.824,但其为go语言,官方没有lab的答案,框架也很晦涩难懂,且全网没有一个博客对其有清晰的解释,有的只是甩一堆名词然后直接贴没有任何注释的代码,非常不适合学习。但是github上面的cornerstone是纯c++实现的一个非常优雅且精简的raft协议......
  • Analysis of the Web Design and Technology of mm ringtones
    **LayoutDesign**-Ithasaclearhierarchicalstructure.Themaincontentappearstobefocusedonpresentingalistofringtones.Eachringtoneentryhasanameandacategory,whicharepresentedinalistformat.Thisallowsuserstoquicklyscanthr......
  • [快速阅读八] HDR->LDR:Matlab中tonemapfarbman函数的解析和自我实现。
    最近受朋友的委托,想自己实现Matlab里的一个HDR转LDR的函数,函数名是tonemapfarbman,乘着十一假期,稍微浏览下这个函数,并做了一点C++的实现和优化。为了看到这个函数的效果,需要至少matlab R2018b及其以上的版本。 首先,我们下载了matlab帮助文档中提到的该算法对应的论......
  • CPU性能测试基准(Dhrystone)学习
    简介Dhrystone是测量处理器运算能力的最常见基准程序之一,常用于处理器的整型运算性能的测量。程序是用C语言编写的,因此C编译器的编译效率对测试结果也有很大影响。Dhrystone是由ReinholdP.Weicker在1984年提出来的一个基准测试程序,其主要目的是测试处理器的整数运算和逻辑运算......
  • 22319 Business Analysis (Capstone)
    22319 BusinessAnalysis(Capstone)Spring2024SubjectdescriptionTheaimofthissubject istodemonstrateand apply a framework for business analysis and valuation using both    financialandnon-financialdata.Theemphasisofthesubject......
  • dotnet 测试 Mutex 的 WaitOne 是否保持进入等待的顺序先进先出
    本文记录我测试dotnet里面的Mutex锁,在多线程进入WaitOne等待时,进行释放锁时,获取锁执行权限的顺序是否与进入WaitOne等待的顺序相同。测试的结果是Mutex的WaitOne是乱序的,不应该依赖Mutex的WaitOne做排队顺序以下是测试程序代码vartaskList=newList<Task>();......
  • HDU 1729 Stone Game
    https://ac.nowcoder.com/acm/contest/34655/C有\(n\)个箱子,第\(i\)个箱子最多放\(s_i\)个石子,当前箱子里的石子数为\(c_i\)。两个人轮流往箱子里放石子,而且每一次放的数量都有限制:不能超过当前箱子内石子数的平方。例如箱子里有\(3\)颗石子,那么下一个人就可以放\(1-9\)......
  • 电脑长截图滚动截图FastStone Capture v10.7专业授权绿色版
    FastStoneCapture是一款集屏幕捕捉、编辑、导出和屏幕录像为一体的轻量级、多功能截图录屏软件。软件的特色功能是支持电脑长截图滚动截图。它以其简洁高效的操作界面和强大的功能赢得了全球用户的青睐。FastStoneCapture自2000年推出以来,经历了多次更新迭代,每一次升级都是对......