如何使用C#建立一个软电话(使用SIP协议)。
我面临着使用C#或.NET Technologies构建SIP软电话的挑战. 请指导我建立此类的技术,要求和规格. 可能的要求: 支持的编解码器: G.722.1,G.723.1,G.726,G.728,G.711,G.729,G.723.1,ILBC,ILBC,:G.711(a和M law),G.729a/b/d/e,AMR,GSM 6.10/EFR,ILBC,Speex 语音: 实时质量监测(MOS)3 独立电话线 自动答案/请勿打扰电话 转发完整的双工音频 记录压缩音频数据. 完全兼容的软电话/拨号器 用于PC2 Phone和Mobile2phone (iPhone,诺基亚N95)应用 Symbian S60,完整的源代码应 提供. 与Windows 2000/XP/2003/Vista/Mac 兼容 NAT/防火墙遍历功能 与任何第三方SIP服务器 一起使用 支持SIP出站代理 显示呼叫者帐户余额
0 2024-04-15
编程技术问答社区
C# SIP栈/库
我正在寻找用C#编写的优质SIP库或提供C#包装器.不一定需要自由.有人使用了任何好的吗? 要澄清,我谈论的是VoIP协议SIP. 我真的不仅在寻找Google搜索.我想让某人回来说:"我们使用______,而且效果很好." 为了进一步澄清,我正在寻找一个可以帮助我实现SIP代理服务器的库,而无需手动构建SIP数据包.我不是在寻找Asterisk,FreeSwitch或任何其他PBX软件. 我希望在C#中创建一项服务,该服务将等待SIP数据包并响应它们,我想要一个可以处理大多数详细信息的库. 解决方案 我在7年前经历了类似的任务,但正在寻找嵌入式C版本.我看了看 osip 库.它完成了将SIP数据包转换为结构和背部的所有工作. 但是,文档中的一个点一直困扰着我.作者建议您非常熟悉SIP规范( rfc 3261 )有效图书馆.阅读了几次规格后,我最终写了自己的解析器并致电控制应用程序. 请记住,SIP仍然是不断发展的标准.有一个活动 sipfor
0 2024-04-10
编程技术问答社区
PJSUA/PJSIP-无法将支持增加到32个账户/传输/呼叫
我在构建过程中使用config_site.h尝试了各种尝试,几乎没有改进……仍然卡在8个帐户上.代码是: import pjsua lib = pjsua.Lib() lib.init() lib.start() transport = lib.create_transport(pjsua.TransportType.UDP) for x in range(10): lib.create_account_for_transport(transport) 和: Assertion failed: (pjsua_var.acc_cnt
4 2024-04-05
编程技术问答社区
编译所有架构的PJSIP 2.5库
要编译用于iPhone设备的PJSIP库,我正在使用此代码 make distclean && make clean ARCH='-arch arm64' ./configure-iphone --enable-opus-codec make dep make 此代码允许我仅将我的应用程序安装到单个体系结构中. 为所有架构(ARMV7,ARMV7,ARM64,I386,X86_64)编译PJSIP,我可以使用哪种命令或工具 解决方案 为所有设备编译的步骤. 分别为所有设备编译 与Lipo合并 例如. -create /libsrtp-arm64-apple-darwin_ios.a /libsrtp-i386-apple-darwin_ios.a -output output_file_name 然后使用output_file_name.a作为所有设备和模拟器的通用库 检查支持的体系结构:output_file_name.a lip
0 2024-04-05
编程技术问答社区
是否可以在黑莓上使用MJSIP api?
我正在尝试为黑莓的VoIP申请开发,经过长时间的冲浪,我来了 要了解MJSIP API.但是我有疑问是否可以使用此API 使用BlackBerry开发来创建VoIP应用程序.请任何人知道答案 帮我. 解决方案 谢谢,这是您在那里找到的一个不错的项目!有一个J2ME版本 更新您对,有包装/文件夹结构的错觉. 编译的步骤: 下载创建BlackBerry Project(我使用了组件4.6) 在项目src文件夹中创建这样的结构: 提取MJSIP2Me_1.6.zip,复制文件和文件夹: 来自mjsip2me_1.6 \ src \ org \ zoolu \ to project \ src \ org \ org \ zoolu \ 来自mjsip2me_1.6 \ src \ j2me \ local \ to project \ src \ local 来自mjsip2me_1.6 \ src \ j2me \ microtools \ to pro
0 2024-03-31
编程技术问答社区
背景中的iPhone VOIP
我正在开发通过Wi-Fi与非iOS设备通信的iPhone应用程序.我的应用程序正在使用VoIP.i配置了流,并将必要的UIBackgroundModes添加到我的plist中. 问题是,当应用程序进入后台时,该应用程序未从外部设备中接收任何信息. 有人可以告诉我我是否缺少什么? 解决方案 不确定实际问题. 确保关注 根据iOS背景VOIP应用程序,它将仅允许TCP连接在背景中活着且具有传染性. 因此,如果您/您的堆栈使用UDP套接字进行VoIP,则将其替换为TCP. 如果UDP端口保持与您的应用程序的绑定,但它在背景模式下不活动并在前景模式下变得活跃. 其他解决方案 我假设您根据您的语句正确设置PLIST中所需的背景模式.将数组设置为音频和VoIP的所需值.另外,您是否有键入的密钥"应用程序不在后台运行"添加到PLIST中并设置为no.
0 2024-03-27
编程技术问答社区
iOS的Voip Socket不会在后台运行
我在iOS应用程序的背景中得到一个VoIP插座. 我的连接正常工作,但是当我的应用程序进入后台时,它不会醒来.但是,如果我打开应用程序备份,它会响应它睡着时收到的任何消息. 我这样设置了我的流: CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, (CFStringRef) @"test.iusealocaltestserver.com", 5060, &myReadStream, &myWriteStream); CFReadStreamSetProperty ( myReadStream,
0 2024-03-27
编程技术问答社区
Callkit-如果从后台开始呼叫,没有音频
自iOS 13.3.1 以来,这开始发生 在我的应用程序上,我使用callkit + webrtc建立VoIP连接.我总是设法在没有问题的情况下建立联系. 但是,由于该应用不在前景:我设法建立连接,但尚未启动CallKit(顶部没有绿色图标/bar),因此我无法启动CallKit调用. )并且麦克风也没有捡起. 我总是会收到以下错误: Error requesting transaction (( " contactIdentifier=(null) video=0 relay=0 upgrade=0 retry=0 emergency=0 isVoicemail=0 ttyType=0 localLandscapeAspectRatio={0, 0} localPortraitAspectRatio={0, 0} dateStarted=(null) localSenderIdentityUUID=(null) shouldSuppressInCall
2 2024-03-27
编程技术问答社区
iOS13:替代VOIP推送通知(企业),在后台默默地与一个应用程序沟通,现在iOS13杀死了它
因此,在我们的企业环境中,我们很高兴地使用VoIP推送通知来远程访问用户的平板电脑,以进行维护和远程数据修复目的.与常规APN不同,即使不运行,VoIP推送通知也将访问该应用程序.我本应该认为苹果会在某个时候杀死它. 是否有人知道一个私人API绕过拨打电话 Report newComingCallwithuuid ,它带来了全屏调用UI,或者我想不出其他机制来访问该应用程序中的应用程序中的应用程序背景即使被杀死 - 通知服务扩展也无法正常工作(我相信),因为它只适用于屏幕消息.谢谢 解决方案 如果您不打算将其发布到Apple Store,也不关心私有API的使用(可以随时更改,打破代码),则可以使用方法来更改实现系统被调用以崩溃应用程序的功能. 就我而言,我的项目具有迅速而OBJC的互操作性.我这样做了: 创建一个名为PKPushRegistry+PKPushFix_m.h的文件,其中包含此 > 将其包括在您的快速桥接中. 其他选项(也不能在Apple S
2 2024-03-27
编程技术问答社区
iOS上的VoIP插口--没有收到通知
我有一个VoIP应用程序,该应用程序使用TCP服务将其唤醒到传入的呼叫. TCP插座是使用此代码片段创建的: CFReadStreamRef read = NULL; CFWriteStreamRef write = NULL; ... CFStreamCreatePairWithSocketToHost(NULL,(__bridge CFStringRef)shost, port, &read, &write); self.read = (__bridge NSInputStream*)read; self.write = (__bridge NSOutputStream*)write; if (![self.read setProperty:NSStreamNetworkServiceTypeVoIP forKey:NSStreamNetworkServiceType]){ [Log log:@"Could not set Vo
8 2024-03-26
编程技术问答社区
没有位置服务的iOS后台轮询
这是一个我们都想知道多次的问题,而且似乎没有人有一个很好的答案. 诸如Dataman之类的应用程序如何无限期地定期运行并仍然进入App Store? 该应用程序允许用户打开"精确数据跟踪",并选择一个频率,该应用程序更新其数据使用情况以零用户交互来计数 - 间隔每分钟一次,每10分钟一次,每20分钟一次分钟. 是的,我已经阅读了所有关联的 Apple文档在后台过程,并成功实现了其中的许多.我还探索了这个旧帖子的信号>,但是现在已经足够老了,许多"循环孔"已经修补,并且记录的东西无论如何都可以更好地工作. 我很幸运地将应用程序注册为VoIP应用程序并在某些时间间隔请求靠近的应用程序,但是除非它是VoIP应用程序(Dataman不是),否则它不是App-Store-OK.此外,注册VoIP Keep-Alives实际上并没有表现出与Dataman相同的行为... voip keep-alive呼叫以某种随机的间隔出现,或者至少在您选择的频率下而没有同步到时钟时间. d
0 2024-03-26
编程技术问答社区
如何在后台保持VOIP套接字连接?
我的应用要求:由于某些原因,我应该维护套接字连接以触发服务器推动的本地通知.因此,我使用iPhone的VoIP背景功能来维护插座连接. 1.我已经配置了VoIP的流以持续插座连接以在后台运行,那么我应该设置什么超时值? 一旦超时到期,插座连接将终止? 我该如何始终使我的申请聆听插座.? 客户端流配置如下, NSString *urlStr = @"http://192.168.0.108"; NSURL *website = [NSURL URLWithString:urlStr]; CFReadStreamRef readStream; CFWriteStreamRef writeStream; CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)[website host], 1234, &readStream, &writeStream); CFReadStreamSetProperty(readStrea
0 2024-03-26
编程技术问答社区
使用CallKit的VOIP应用中的音频短路问题
我正在使用换句话说,当我打电话时,我可以听到自己的演讲者以及对方的声音.我该如何更改? avauiosession设置: AVAudioSession *sessionInstance = [AVAudioSession sharedInstance]; NSError *error = nil; [sessionInstance setCategory:AVAudioSessionCategoryPlayAndRecord error:&error]; XThrowIfError((OSStatus)error.code, "couldn't set session's audio category"); [sessionInstance setMode:AVAudioSessionModeVoiceChat error:&error]; XThrowIfError((OSStatus)error.code, "could
0 2024-03-21
编程技术问答社区
在iPhone5s的扬声器模式下,iOS7系统出现机器人/乱码现象
我们有一个VoIP应用程序,可以记录和播放音频.因此,我们使用PlayandRecord(KaudiosessionCategory_playandRecord)音频会话类别. 到目前为止,我们已经使用iPhone 4/4S/5成功地使用了iOS 6和iOS 7,在该iPhone 4/4s/5中,通话音频和音调播放清晰可见并且可以听见. 但是,使用iPhone 5s,我们观察到呼叫音频和音调在扬声器模式下听起来很机器人/乱码.使用耳机/蓝牙/耳机时,声音清晰可听到. iOS版本与iPhone 5S:7.0.4 我们正在使用音频录制/播放呼叫音频. 在设置音频属性(例如会话类别,音频路由,会话模式等)时,我们尝试了较旧的(已弃用)AudioSessionsetProperty()和Avaudiosession API. 为了播放音调,我们正在使用avaudioplayer.在VoIP通话中播放音调,以及在应用程序中按下键盘控制器时会产生机器人声音. 在使用AudioComponent
0 2024-03-21
编程技术问答社区
如何在pjsip安卓应用中启用扬声器?
我正在尝试在我的PJSIP应用中使用扬声器,因此我使用setOutputRoute: pjmedia_aud_dev_route路由= pjmedia_aud_dev_route.pjmedia_aud_dev_route_loudspeaker; myApp.ep.auddevmanager().setOutputRoute(route,true); 但是我遇到了一个错误:无效或不支持的音频功能(pjmedia_eaud_invcap). 在pjsua中说:仅当设备具有pjmedia_dev_cap_output_route audiodevinfo.caps flags时,此方法才有效. 我想也许我必须设置这个标志...但是我不知道 如何 解决方案 我几天前遇到了同样的问题.我知道这不是答案,只是一种替代方案,但我最终使用了它,并且效果很好. AudioManager audioManager = (AudioManager) context.ge
22 2024-03-19
编程技术问答社区
speex分割的音频数据-网络音频-VOIP
我正在运行一个小应用程序,该应用程序在JavaScript中使用Speex编解码器编码和解码一个音频阵列: https://github://github .com/dbieber/audiorecorder 带有一个充满罪波形的小阵列 for(var i=0;i Decode>合并,则听起来不像以前相同. 看一下: 小提琴: http://jsfiddle.net/exh63zql/ 两个按钮都应给出相同的音频输出. 如何以两种方式获得相同的输出?他们在speex.js中的特殊模式用于拆分音频数据吗? 解决方案 请注意,Speex是我已经修改了您的buffer1.push(Math.sin(2*Math.PI*i*frequency/sampleRate));
0 2024-03-19
编程技术问答社区
如何用音频编解码器制作一个iOS VOIP/SIP应用程序?
任何人都可以帮助我清除我正在尝试实现SIP应用程序的疑问,我已经设置了SIP Server设置,并且我拥有SIP帐户的用户名和密码. 现在我尝试使用 pjsip & siphon ,但以某种方式失败了很多错误. 然后,我尝试了 linphone ,而且效果很好. 然后将Linphone项目中的文件复制到我的项目中,并仍在进行研究. (我在项目中还要复制什么 - 我在应用程序中复制了Apple -Darwin Include&Lib文件夹) 我想在应用程序中使用G711(A和U)编解码器,但我找不到任何标头文件,请任何人建议我如何在应用程序中使用Linphone库使用G711编解码器? 也可以告诉我,没有视频功能而掩盖SIP应用程序需要多少天? (使用GSM,Speex,G711编解码器的音频通话 - 仅) 在没有任何SIP应用程序的情况下,将需要多少天,专家和中级开发人员制作这样的应用程序? (根据您的任何粗略的想法.) 还有其他好的开源库可以轻松地使用这样的应用吗?
2 2024-03-19
编程技术问答社区
跨平台声音API
我正在考虑开发一个需要实时流动音频流的应用程序.我更喜欢使用一些跨平台(Windows/linux/bsd)用C或C ++编写的开源库,即使使用各自的OSS'声音API编写它仍然是一个选项. 我已经阅读了一些有关各种声音库,包括SFML,SDL和Portaudio.诚然,我尚未对FreeBSD和Linux中的声音进行足够的研究(这2之间有多相似?) 主要要求是 从选定的麦克风/麦克风中获取音频以发送网络, 将数据发送到输出设备的选择, 处理声音(过滤,清理噪声,多路复用流等),但是一旦我拥有音频数据,库本身就可以做到这一点. 延迟相当低 我主要关心的是,这些提到的API似乎主要针对游戏(通常从磁盘上加载声音,并且涉及的声音记录不多,而不是在网络上流式传输,而在录制和录制之间的重要性相同播放. 是否有人对这些或其他声音API有任何指示/警告/建议,或者对漫长的路线并在各自的OSS'API中实施这一点的优势/缺点? 注意: 虽然这是:"要我们推荐或找
4 2024-03-19
编程技术问答社区
如何使用PJSIP为一个iOS客户端应用程序捕捉和翻译传入的其他语言的音频流?
我想将语言转换器集成到基于VoIP的iOS客户端应用中,该应用程序将根据用户选择将实时输入音频流转换为其他选定的语言,我正在使用PJSIP开源库来支持VoIP呼叫. 对于语言翻译,我想用语音将文本和文本用于语音开源库. 现在我面临以下问题: 如何在PJSIP中捕获传入的音频流? 如何发送转换后的音频流,用户可以像在 普通音频通话? 请帮助.谢谢 解决方案 我发现捕获传入音频流的一种可能性可能是在会议中定义rec_file. 例如:#define rec_file"/mypath/myname.pcm". pjsip将在给定文件中存储未形式的帧(普通PCM数据).
0 2024-03-19
编程技术问答社区
当手机被锁定时,iOS音频在接听电话时不工作。使用WebRTC进行呼叫
在与webrtc一起进行voip呼叫时,我会面临音频问题,同时从锁定屏幕上接听电话. 一般功能: 我的应用程序在启动时会激活音频.对于来电,生成和交换了SDP优惠和答案.设置对等连接.无论是音频通话还是视频通话,都会生成音频和视频流.然后通过使用以下代码将呼叫报告给CallKit: callProvider.reportNewIncomingCall(with: currentCallUUID!, update: update) { error in } 如果应用在前景中,则可以正常工作. 但是,当手机锁定并且用户从锁定屏幕上接听电话时,该流将交换,但是任何一端都没有音频,直到用户本人进入应用程序为止. 当用户进入应用程序时,音频在两端都变得活跃. 所有背景设置和功能都正确设置了. 我还提到了苹果工作人员提供的以下工作.但是即使它也无法正常工作. https://forums.developer.apple.apple.appl
4 2024-03-19
编程技术问答社区