如何使音频codeC上唯一的一款iOS VOIP / SIP应用 [英] How to make an iOS VOIP/SIP Application with audio codec's only

查看:376
本文介绍了如何使音频codeC上唯一的一款iOS VOIP / SIP应用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

任何一个可以帮助我来清除我的疑惑我想实现的SIP应用,我已经有了SIP服务器设置,我有我的SIP帐户的用户名和密码。

Can any one help me out to clear my doubts i am trying to implement an SIP application, I already have sip server setup and i have the username and password of my sip account.

现在我尝试使用 PJSIP &安培; 虹吸但不知何故,有很多错误的失败。
然后我试着用 Linphone会以及它工作得很好。
然后复制Linphone会从项目中的文件到我的项目,它仍在工作。 (还有什么我应该复制在我的项目得到持续 - 我抄了苹果达尔文包括和放大器;在我的应用lib文件夹中)
我想用G711(A和U)在应用codeC和我找不到任何头文件的为,请任何一个可以建议我应该如何使用G711 codeC与Linphone会图书馆我的应用程序?

Now I tried using PJSIP & SIPHON but somehow failed with lots of errors. Then I tried with LinPhone and it worked fine. Then copied the files from LinPhone project into my project and still working on it. (What else should I copy in my project to get going - i have copied the apple-darwin include & lib folder in my application) I want to use G711(Both A and u) codec in the application and I can't find any header file's for that, please can any one suggest me how should I use G711 codec with the LinPhone Library in my Application?

另外任何一个可以告诉我,多少天需要掩饰,而不在其视频功能的SIP应用? (音频与GSM,Speex语音,来电G711 codeC的 - 只)
多少天与专家和放大器;中等水平的开发商将采取使应用程序像这样没有任何SIP应用程序的任何先验知识? (根据您的任何粗略的想法。)

Also can any one tell me that how many days it takes to cover up the SIP application without video functionality in it? (Audio Calls with GSM,Speex,G711 Codec's - only) How many days will and Expert & Medium Level Developer will take to make app like this without any prior knowledge of any SIP app? (Any Rough idea according to you.)

有没有其他好的开源库可使用容易做出这样的应用程序?
或任何形式的教程可用? (Linphone会的文件是不是高达标记)。

Is there any other good open source library available to use easily to make an app like this? Or any kind of a tutorial available? (Documentation of LinPhone is not upto the mark).

我是要在正确的方向?

Am i going in the right direction?

推荐答案

词警告的

这听起来像我试图从这个persuing endevor disuade你。远非如此,SIP是一个有趣的协议与(最终)工作,这是非常有益的,看到这一切走到一起。你会在我们已经有了这样的野兽工作满意度享受了大量的,祝你好运它塑造你的意志!然而,要prepared:SIP是一个令人沮丧的野兽一起工作。

This may sound like I'm trying to disuade you from persuing this endevor. Far from it, SIP is a fun protocol to work with (eventually) and it's very rewarding to see it all come together. You will enjoy a great deal of satisfaction at having gotten such a beast to work, and I wish you the best of luck in shaping it to your will! However, be prepared: SIP is a frustrating beast to work with.

下面的时间表是根据我自己的经验,虽然我有点缩短时间表,由于那里是你们两个人。我们的开发周期历时近一年,但我都领先,并在项目唯一的程序员,到时候包括在UI上的所有工作,要求协调,规划,文档等。

The following timeline is based on my own experience, though I've shortened timelines somewhat due to there being two of you. Our dev cycle lasted nearly a year, but I was both the lead, and only programmer on the project, and that time includes all the work done on the UI, requirements coordination, planning, documentation, etc.

1安培周; 2

SIP是一个复杂的规范,有许多扩展和特殊性,特别是与防火墙,代理,分支和加盟。我建议你​​开始寻找起来的RFC,并简单地花很多时间量好读书信令规范,任何扩展您将需要为您的应用程序,包括在最低限度,基本规范的SDP规范和ICE协议规范。

SIP is a complex specification, with many extensions and peculiarities, especially relating to firewalls, forwarding, branching and joining. I would recommend you start looking up RFCs, and simply devote a good amount of time to reading the signalling specs, and any extensions you will need for your application, including at a minimum, the base specification, the SDP specification, and the ICE protocol specification.

这应该占据一个星期左右,如果你这样做是正确的,而全职工作。 2周,考虑你需要哪些扩展规格(presence迹象,preconditions,会议,GRUU等),花费读那些和时间。钻对方在他们身上,这是一个很大的信息,并在如何他们都中的相互关系彼此而言是相对复杂的。

That should occupy about a week if you're doing it right, and full time. For week 2, consider which extension specifications you'll need (presence indications, preconditions, conferencing, GRUU, etc) and spend the time to read those as well. Drill each other on them, it's a lot of information, and it's relatively complex in terms of how they all inter-relate to each other.

打出来的协议分析器(Wireshark的,等等),看看你有应用程序正在做的电线。读过的规格,你现在会在一个很好的位置,明白了为什么各种SIP产品有困难打漂亮的相互搭配,以及如何开始自己的应用程序的工作的想法。

Break out the protocol analysers (Wireshark, etc) and see what the apps you have are doing on the wire. Having read the specs, you'll now be in a good position to understand why various SIP products have difficulty playing nice with each other, and, an idea of how to start working on your own app.

周3-6

即使有一个体面的工具包,你会花一个月获得SIP的大部分可靠地做你想让它做什么,在通信信令信息,并写入所需的基础设施以应对SIP信号。有边缘的情况下一个疯狂的数字,每一个缺陷,你可以在并发处理想象现在的事实放大,你有三个独立的代理商,其中一些人将具有很高的延迟,不可靠的网络连接,所有的努力统筹对于相同的事务。

Even with a decent toolkit, you will spend the better part of a month getting SIP to reliably do what you want it to in communicating signalling information, and writing the required infrastructure to respond to SIP signals. There are a crazy number of edge cases, and every pitfall you can imagine in concurrent processing is now magnified by the fact that you have three independent agents, some of whom will have very high latency, unreliable network connections, all trying to co-ordinate regarding the same transaction.

不要走捷径,code,测试,code越多,查找故障和边缘的情况下,并保持下去。 RFC中帮助很多理解​​你会遇到的问题,但有些只是它必须通过要拖着沉重的脚步。

Don't take shortcuts, code, test, code more, look for faults and edge cases, and keep going. The RFCs help A LOT in understanding the problems you will run into, but some of it just has to be trudged through.

7和周; 8

根据您的应用程序的要求,只建立最终用户代理之间的底层连接将理所当然地占据了大部分的努力,创造一个可靠的产品。你会,你们两个之间,很有可能在接下来的几个星期,让这部分的第一次工作,并有可能不可数小时整个应用程序的开发周期的其余诊断边界条件。记得有优势的情况下在这里需要一个媒体代理,并在用户如此糟糕的防火墙没有什么可以做一个两难的边缘情况。不要忘了处理它们。

Depending on the requirements for your application, just establishing the underlying connection between end-user agents will rightly occupy most of your effort to create a reliable product. You will, between the two of you, likely spend the next couple of weeks getting this part to work for the first time, and likely uncountable hours diagnosing edge conditions throughout the rest of the dev cycle of the app. Remember that there are edge cases here which require a media proxy, and a no-win edge case where the user is so badly firewalled that nothing can be done. Don't forget to handle them.

9-11周

在这一点上,你的手机应该(相当)可靠地连接到对方,这取决于你的经验和网络知识,在相当严格的防火墙以及。在preconditions规范是在这里减少延迟察觉,因为您可以在振铃,直到网络层已经连接挡住非常有用的。我的经验将无法通知下一层(协议)非常好,因为与Java,媒体编码和解码被递给我一个银盘,除了QuickTime的,这是我必须做我自己。我会记下一个星期或两个用于获取协议很好地工作,并通过SDP可靠的通信协议信息,但是这可能是我的一个非常乐观的估计。

At this point, your phones should (fairly) reliably connect to each other, depending on your experience and network knowledge, over fairly strict firewalls as well. The preconditions spec is very useful for decreasing perceived delay here, as you can hold off on ringing until the network layer has already connected. My experience will not inform the next layer (protocol) very well, as with Java, the media encoding and decoding was handed to me on a silver platter, aside from quicktime, which I had to do myself. I would chalk up a week or two for getting the protocols working nicely, and communicating protocol information reliably via SDP, but this may be a very optimistic estimate on my part.

添加一个星期,如果你从来没有使用RTP / RTCP工作过,因为虽然他们不是每说复杂,正确响应您RTCP获得具有挑战性的反馈,是一个黑暗的艺术颇有几分,虽然是很要确保最佳的网络利用率和媒体质量的关键。

Add another week if you've never worked with RTP/RTCP before, as while they're not complex per-say, properly responding to the feedback you get from RTCP can be challenging, and is somewhat of a dark art, though quite critical to ensuring optimal network utilisation and media quality.

第12周+

有可能的,在这一点上,你会发现有一个或你想成为能够与连接另一个SIP产品,不喜欢你的实现,有时原因完全莫名其妙。如果你需要支持挑剔的产品,你将花费在接下来的几个星期到一个月诊断原因。如果你的产品是专有的,你可能不关心这一步,但它也是双重检查的你有多严重重整规范的一种方式。 (我们都做,所以不要以为你正在使用的测试产品是正确要么!务必仔细检查!)

Likely, at this point, you'll realise that one or another SIP product you want to be able to connect with, doesn't like your implementation, sometimes for reasons utterly inexplicable. If you need to support finicky products, you will spend the next few weeks to a month diagnosing why. If your product is proprietary, you probably don't care about this step, but it's also a way of double checking how badly you're mangling the spec. (We all do, so don't assume the test product you're using is correct either! Always double check!)

其他

记住,上述主要目的是作为它需要多长时间获得一个精心编写的SIP / SDP / ICE基础的解决方案功能,不使用这些基础设施应用的估计。 UX是iOS的世界之王,所以一定要确保你的应用程序是引人注目的,花大量的时间得到它的权利。

Bear in mind, the above is mainly intended as an estimate of how long it will take to get a well-written SIP/SDP/ICE based solution functioning, not the app using such infrastructure. UX is king in the iOS world, so make sure your app is compelling, and spend a LOT of time getting it right.

即使
您使用库,使编码更容易,学习底层协议!这将极大地受益,你知道为什么事情的工作,他们做的方式,为什么SIP宇宙充满了这么多碎产品。

Even if you use a library to make the coding easier, learn the underlying protocol! It will benefit you tremendously to understand why things work the way they do, and why the SIP universe is full of so many broken products.

这篇关于如何使音频codeC上唯一的一款iOS VOIP / SIP应用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆