<div dir="ltr">Thanks for explaining this. I didnt know much of this. :)</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 16, 2016 at 1:33 AM, George Kiagiadakis <span dir="ltr"><<a href="mailto:gkiagia@tolabaki.gr" target="_blank">gkiagia@tolabaki.gr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 06/15/2016 05:15 PM, Balram Pariyarath wrote:<br>
> A few days back my problem was that I cannot make any calls using<br>
> telepathy (test-calls or msgs). Now I cant connect to my SIP acct. using<br>
> empathy!<br>
<br>
</span>I'm sure there is an explanation to everything. Check the debug logs of<br>
your connection manager and mission-control. Empathy has a UI for<br>
showing logs from mission-control and CMs that implement the Debug<br>
interface, which you can use to inspect them. So does kde-telepathy as well.<br>
<span class=""><br>
> @George: can you please elaborate about call1.content and call1.stream?<br>
> Should they be implemented externally? and how?<br>
><br>
<br>
</span>As you probably already know, calls in telepathy are represented as<br>
channel objects that implement Channel.Type.Call1. Ch.T.Call1 cannot<br>
work on its own, though. Your CM should also expose at least one<br>
Call1.Content object which then in turn should contain at least one<br>
Call1.Stream object. Semantically, a Content represents a media content<br>
in a call (ex. audio or video). A Stream represents an actual media<br>
stream and is contained within a Content. Usually there is one Stream<br>
per Content, since you are streaming to one peer (either p2p or to a<br>
server), but there could be more streams (ex. if you were streaming to<br>
multiple peers directly without a relay server and using unicast;<br>
multicast would still be one stream, but with multiple endpoints).<br>
<br>
Now typically, protocols such as SIP and XMPP do not do the actual media<br>
streaming on their own. They are used only for signaling the properties<br>
of the media stream and the media stream uses some other protocol. In<br>
order to allow better integration with the UIs, the design of telepathy<br>
places the signaling protocol in the CM and the actual media streaming<br>
in the UI. So, when you are doing a call with empathy and tp-gabble,<br>
gabble does the signaling part, exposes the relevant information, and<br>
empathy does the actual media streaming. In order to expose this<br>
information, the CM needs to implement also the media interfaces<br>
(Call1.Content.Interface.Media & Call1.Stream.Interface.Media) on the<br>
Content & Stream objects, as well as any other relevant interfaces from<br>
this category. The UI then uses these interfaces to extract the<br>
signaling information from the CM and setup the media stream.<br>
<br>
In certain cases, however, it is not possible to separate the media<br>
streaming from the signaling. There are 2 cases there as well. The first<br>
case is when you have dedicated hardware that does the call (ex. a GSM<br>
modem on a phone). In this case the software (both the CM and the UI)<br>
have no control over the media streaming, so the CM exposes the<br>
Ch.T.Call1.HardwareStreaming=True property and the UI also knows this<br>
way that it shouldn't bother with the stream. This is not very user<br>
friendly, though, because the media controls on the UI won't be<br>
available. The user will have to deal with the device directly somehow.<br>
<br>
The second case is when you have a CM for a proprietary protocol, whose<br>
media streaming cannot be implemented in the UI for legal reasons. In<br>
this case the UI should still handle the audio/video devices and<br>
transfer the data to/from the CM, which will handle the actual<br>
encoding/decoding and streaming. This can be done by normally exposing<br>
the Media interfaces and setting the transport type [1] to SHM, which<br>
will tell the media streaming component to actually offload media data<br>
to/from a shared memory segment that the CM can use on its side to<br>
exchange this data with the UI.<br>
<br>
The reason I asked this question is because I wonder how you are<br>
implementing calls in your CM. If HardwareStreaming=False, whatever call<br>
GUI you try to use, it will expect to find the Media interfaces<br>
available, otherwise it is normal for it to fail.<br>
<br>
I hope I didn't confuse you. If you need further help, I'm mostly<br>
available for talking on irc.<br>
<br>
Regards,<br>
George<br>
<br>
<br>
[1].<br>
<a href="https://telepathy.freedesktop.org/spec/Call_Stream_Interface_Media.html#Enum:Stream_Transport_Type" rel="noreferrer" target="_blank">https://telepathy.freedesktop.org/spec/Call_Stream_Interface_Media.html#Enum:Stream_Transport_Type</a><br>
<div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
telepathy mailing list<br>
<a href="mailto:telepathy@lists.freedesktop.org">telepathy@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/telepathy" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/telepathy</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><p dir="ltr" style="font-size:12.8000001907349px"><b>Balram P Menon<br>Tech Head | Excel 2016</b><br>Computer Science and Engineering <span style="font-size:12.8000001907349px">(Batch: 2013-17)</span><br>Govt. Model Engineering College, Kochi-21</p><p dir="ltr" style="font-size:12.8000001907349px"><img alt="☎" src="https://mail.google.com/mail/e/260e" style="margin:0px 0.2ex;vertical-align:middle;max-height:24px">: 8129130866<br>✉: balbbrl<a href="mailto:p.balram96@gmail.com" style="color:rgb(17,85,204)" target="_blank">@gmail.com</a></p></div></div></div></div></div></div></div></div>
</div>