PJSUA2 direct session management with custom signaling

IC
Ivano Culmine
Tue, May 19, 2020 11:16 PM

Hi everybody,

I just subscribed to this mailing list because since some months, when I
have enough time to spend, I'm working on a voip android app, which I plan
to publish as an open source project as soon as the code will have a sort
of defined structure (because I'm experimenting a lot at the moment and
defining a lot of ideas). Ok, let's come to the actual reason of my message.

It looks like this mailing list may be the only viable option to get some
real support (unfortunately stackoverflow is often very frustrating for non
trivial problems).

I'm writing to all of you because I would appreciate your help on my
problem: I think It's not clear enough to me, but I'm looking at several
documentation, how to manage a media session doing everything pjsip does
during a SIP call, but without SIP signalling. I think this topic would be
of interest for many developers. In a few words, I would like to use pjsip
to manage a call with jingle as signaling protocol. So I may be wrong, but
what I think should happen is:

Receiving a call:

  • someone invites me to a call through jingle and sends a session
    initiation request with needed information (as it happens with SDP)
  • I would convert jingle information to SDP
  • I would pass SDP to pjsip (pjmedia?)
  • I read a SDP answer from pjsip/pjmedia
  • I convert the read SDP answer to a jingle answer and send it to the caller
  • after this process the media session should be created and media should
    flow

Making a call:

  • pjsip (or pjmedia as usual?) should produce a SDP offer based on
    configuration (active codecs, ice candidates, srtp, etc.)
  • I should convert this SDP to jingle and invite the other party
  • the other party should answer with its SDP answer
  • I should convert the jingle answer to SDP and pass it to pjsip/pjmedia
  • the media session should be configured at this time and the media should
    flow

Obviously all transports should be created too during these processes. I'm
reading and trying to understand these documents:

https://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__SDP__NEG.htm#details
https://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__TRANSPORT.htm

and it seems to be all I need, so I'm trying to add an higher level API to
manage this process. So, am I right if I think this is all what I need to
accomplish this task? I'm not sure to understand if, for example, the
transports would be created by pjmedia as an effect of the session creation
or I need to manage them too.

I think it would be a great feature to have an API in PJSUA2 to create and
manage media sessions like these ones at a higher level.

So, may someone give me a good direction, please?

Thank you so much, I would actually appreciate your help.

--
Ivano Culmine

Hi everybody, I just subscribed to this mailing list because since some months, when I have enough time to spend, I'm working on a voip android app, which I plan to publish as an open source project as soon as the code will have a sort of defined structure (because I'm experimenting a lot at the moment and defining a lot of ideas). Ok, let's come to the actual reason of my message. It looks like this mailing list may be the only viable option to get some real support (unfortunately stackoverflow is often very frustrating for non trivial problems). I'm writing to all of you because I would appreciate your help on my problem: I think It's not clear enough to me, but I'm looking at several documentation, how to manage a media session doing everything pjsip does during a SIP call, but without SIP signalling. I think this topic would be of interest for many developers. In a few words, I would like to use pjsip to manage a call with jingle as signaling protocol. So I may be wrong, but what I think should happen is: Receiving a call: - someone invites me to a call through jingle and sends a session initiation request with needed information (as it happens with SDP) - I would convert jingle information to SDP - I would pass SDP to pjsip (pjmedia?) - I read a SDP answer from pjsip/pjmedia - I convert the read SDP answer to a jingle answer and send it to the caller - after this process the media session should be created and media should flow Making a call: - pjsip (or pjmedia as usual?) should produce a SDP offer based on configuration (active codecs, ice candidates, srtp, etc.) - I should convert this SDP to jingle and invite the other party - the other party should answer with its SDP answer - I should convert the jingle answer to SDP and pass it to pjsip/pjmedia - the media session should be configured at this time and the media should flow Obviously all transports should be created too during these processes. I'm reading and trying to understand these documents: https://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__SDP__NEG.htm#details https://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__TRANSPORT.htm and it seems to be all I need, so I'm trying to add an higher level API to manage this process. So, am I right if I think this is all what I need to accomplish this task? I'm not sure to understand if, for example, the transports would be created by pjmedia as an effect of the session creation or I need to manage them too. I think it would be a great feature to have an API in PJSUA2 to create and manage media sessions like these ones at a higher level. So, may someone give me a good direction, please? Thank you so much, I would actually appreciate your help. -- *Ivano Culmine*
AW
Andreas Wehrmann
Wed, May 20, 2020 6:31 AM

On 20.05.20 01:16, Ivano Culmine wrote:

Hi everybody,

I just subscribed to this mailing list because since some months, when
I have enough time to spend, I'm working on a voip android app, which
I plan to publish as an open source project as soon as the code will
have a sort of defined structure (because I'm experimenting a lot at
the moment and defining a lot of ideas). Ok, let's come to the actual
reason of my message.

It looks like this mailing list may be the only viable option to get
some real support (unfortunately stackoverflow is often very
frustrating for non trivial problems).

I'm writing to all of you because I would appreciate your help on my
problem: I think It's not clear enough to me, but I'm looking at
several documentation, how to manage a media session doing everything
pjsip does during a SIP call, but without SIP signalling. I think this
topic would be of interest for many developers. In a few words, I
would like to use pjsip to manage a call with jingle as signaling
protocol. So I may be wrong, but what I think should happen is:

Receiving a call:

  • someone invites me to a call through jingle and sends a session
    initiation request with needed information (as it happens with SDP)
  • I would convert jingle information to SDP
  • I would pass SDP to pjsip (pjmedia?)
  • I read a SDP answer from pjsip/pjmedia
  • I convert the read SDP answer to a jingle answer and send it to the
    caller
  • after this process the media session should be created and media
    should flow

Making a call:

  • pjsip (or pjmedia as usual?) should produce a SDP offer based on
    configuration (active codecs, ice candidates, srtp, etc.)
  • I should convert this SDP to jingle and invite the other party
  • the other party should answer with its SDP answer
  • I should convert the jingle answer to SDP and pass it to pjsip/pjmedia
  • the media session should be configured at this time and the media
    should flow

Obviously all transports should be created too during these processes.
I'm reading and trying to understand these documents:

https://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__SDP__NEG.htm#details
https://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__TRANSPORT.htm

and it seems to be all I need, so I'm trying to add an higher level
API to manage this process. So, am I right if I think this is all what
I need to accomplish this task? I'm not sure to understand if, for
example, the transports would be created by pjmedia as an effect of
the session creation or I need to manage them too.

I think it would be a great feature to have an API in PJSUA2 to create
and manage media sessions like these ones at a higher level.

So, may someone give me a good direction, please?

Thank you so much, I would actually appreciate your help.

--
Ivano Culmine

From a quick look at Jingle, you might be better off using the pjmedia
library directly because PJSUA is built around SIP.
For an example of how to use the SDP and media library the pjsua-lib
sources are a good reference.

Best regards,
Andreas

On 20.05.20 01:16, Ivano Culmine wrote: > Hi everybody, > > I just subscribed to this mailing list because since some months, when > I have enough time to spend, I'm working on a voip android app, which > I plan to publish as an open source project as soon as the code will > have a sort of defined structure (because I'm experimenting a lot at > the moment and defining a lot of ideas). Ok, let's come to the actual > reason of my message. > > It looks like this mailing list may be the only viable option to get > some real support (unfortunately stackoverflow is often very > frustrating for non trivial problems). > > I'm writing to all of you because I would appreciate your help on my > problem: I think It's not clear enough to me, but I'm looking at > several documentation, how to manage a media session doing everything > pjsip does during a SIP call, but without SIP signalling. I think this > topic would be of interest for many developers. In a few words, I > would like to use pjsip to manage a call with jingle as signaling > protocol. So I may be wrong, but what I think should happen is: > > Receiving a call: > - someone invites me to a call through jingle and sends a session > initiation request with needed information (as it happens with SDP) > - I would convert jingle information to SDP > - I would pass SDP to pjsip (pjmedia?) > - I read a SDP answer from pjsip/pjmedia > - I convert the read SDP answer to a jingle answer and send it to the > caller > - after this process the media session should be created and media > should flow > > Making a call: > - pjsip (or pjmedia as usual?) should produce a SDP offer based on > configuration (active codecs, ice candidates, srtp, etc.) > - I should convert this SDP to jingle and invite the other party > - the other party should answer with its SDP answer > - I should convert the jingle answer to SDP and pass it to pjsip/pjmedia > - the media session should be configured at this time and the media > should flow > > Obviously all transports should be created too during these processes. > I'm reading and trying to understand these documents: > > https://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__SDP__NEG.htm#details > https://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__TRANSPORT.htm > > and it seems to be all I need, so I'm trying to add an higher level > API to manage this process. So, am I right if I think this is all what > I need to accomplish this task? I'm not sure to understand if, for > example, the transports would be created by pjmedia as an effect of > the session creation or I need to manage them too. > > I think it would be a great feature to have an API in PJSUA2 to create > and manage media sessions like these ones at a higher level. > > So, may someone give me a good direction, please? > > Thank you so much, I would actually appreciate your help. > > -- > *Ivano Culmine* From a quick look at Jingle, you might be better off using the pjmedia library directly because PJSUA is built around SIP. For an example of how to use the SDP and media library the pjsua-lib sources are a good reference. Best regards, Andreas
IC
Ivano Culmine
Wed, May 20, 2020 11:51 AM

Thank you so much for your suggestion. I will take a look at pjlib and if I
will be successful in doing my job, I will share code for an improvement
proposal to include an higher level API in PJSUA...

Il giorno mer 20 mag 2020 alle ore 08:32 Andreas Wehrmann <
a.wehrmann@yandex.com> ha scritto:

On 20.05.20 01:16, Ivano Culmine wrote:

Hi everybody,

I just subscribed to this mailing list because since some months, when I
have enough time to spend, I'm working on a voip android app, which I plan
to publish as an open source project as soon as the code will have a sort
of defined structure (because I'm experimenting a lot at the moment and
defining a lot of ideas). Ok, let's come to the actual reason of my message.

It looks like this mailing list may be the only viable option to get some
real support (unfortunately stackoverflow is often very frustrating for non
trivial problems).

I'm writing to all of you because I would appreciate your help on my
problem: I think It's not clear enough to me, but I'm looking at several
documentation, how to manage a media session doing everything pjsip does
during a SIP call, but without SIP signalling. I think this topic would be
of interest for many developers. In a few words, I would like to use pjsip
to manage a call with jingle as signaling protocol. So I may be wrong, but
what I think should happen is:

Receiving a call:

  • someone invites me to a call through jingle and sends a session
    initiation request with needed information (as it happens with SDP)
  • I would convert jingle information to SDP
  • I would pass SDP to pjsip (pjmedia?)
  • I read a SDP answer from pjsip/pjmedia
  • I convert the read SDP answer to a jingle answer and send it to the
    caller
  • after this process the media session should be created and media should
    flow

Making a call:

  • pjsip (or pjmedia as usual?) should produce a SDP offer based on
    configuration (active codecs, ice candidates, srtp, etc.)
  • I should convert this SDP to jingle and invite the other party
  • the other party should answer with its SDP answer
  • I should convert the jingle answer to SDP and pass it to pjsip/pjmedia
  • the media session should be configured at this time and the media should
    flow

Obviously all transports should be created too during these processes. I'm
reading and trying to understand these documents:

https://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__SDP__NEG.htm#details
https://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__TRANSPORT.htm

and it seems to be all I need, so I'm trying to add an higher level API to
manage this process. So, am I right if I think this is all what I need to
accomplish this task? I'm not sure to understand if, for example, the
transports would be created by pjmedia as an effect of the session creation
or I need to manage them too.

I think it would be a great feature to have an API in PJSUA2 to create and
manage media sessions like these ones at a higher level.

So, may someone give me a good direction, please?

Thank you so much, I would actually appreciate your help.

--
Ivano Culmine

From a quick look at Jingle, you might be better off using the pjmedia
library directly because PJSUA is built around SIP.
For an example of how to use the SDP and media library the pjsua-lib
sources are a good reference.

Best regards,
Andreas


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

--
Ivano Culmine
Cell.: +39 349 7030578
Mtalk.net: http://www.ivano.culmine.mtalk.net/
E-mail: ivano.culmine@gmail.com

Thank you so much for your suggestion. I will take a look at pjlib and if I will be successful in doing my job, I will share code for an improvement proposal to include an higher level API in PJSUA... Il giorno mer 20 mag 2020 alle ore 08:32 Andreas Wehrmann < a.wehrmann@yandex.com> ha scritto: > On 20.05.20 01:16, Ivano Culmine wrote: > > Hi everybody, > > I just subscribed to this mailing list because since some months, when I > have enough time to spend, I'm working on a voip android app, which I plan > to publish as an open source project as soon as the code will have a sort > of defined structure (because I'm experimenting a lot at the moment and > defining a lot of ideas). Ok, let's come to the actual reason of my message. > > It looks like this mailing list may be the only viable option to get some > real support (unfortunately stackoverflow is often very frustrating for non > trivial problems). > > I'm writing to all of you because I would appreciate your help on my > problem: I think It's not clear enough to me, but I'm looking at several > documentation, how to manage a media session doing everything pjsip does > during a SIP call, but without SIP signalling. I think this topic would be > of interest for many developers. In a few words, I would like to use pjsip > to manage a call with jingle as signaling protocol. So I may be wrong, but > what I think should happen is: > > Receiving a call: > - someone invites me to a call through jingle and sends a session > initiation request with needed information (as it happens with SDP) > - I would convert jingle information to SDP > - I would pass SDP to pjsip (pjmedia?) > - I read a SDP answer from pjsip/pjmedia > - I convert the read SDP answer to a jingle answer and send it to the > caller > - after this process the media session should be created and media should > flow > > Making a call: > - pjsip (or pjmedia as usual?) should produce a SDP offer based on > configuration (active codecs, ice candidates, srtp, etc.) > - I should convert this SDP to jingle and invite the other party > - the other party should answer with its SDP answer > - I should convert the jingle answer to SDP and pass it to pjsip/pjmedia > - the media session should be configured at this time and the media should > flow > > Obviously all transports should be created too during these processes. I'm > reading and trying to understand these documents: > > > https://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__SDP__NEG.htm#details > https://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__TRANSPORT.htm > > and it seems to be all I need, so I'm trying to add an higher level API to > manage this process. So, am I right if I think this is all what I need to > accomplish this task? I'm not sure to understand if, for example, the > transports would be created by pjmedia as an effect of the session creation > or I need to manage them too. > > I think it would be a great feature to have an API in PJSUA2 to create and > manage media sessions like these ones at a higher level. > > So, may someone give me a good direction, please? > > Thank you so much, I would actually appreciate your help. > > -- > *Ivano Culmine* > > > From a quick look at Jingle, you might be better off using the pjmedia > library directly because PJSUA is built around SIP. > For an example of how to use the SDP and media library the pjsua-lib > sources are a good reference. > > Best regards, > Andreas > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip@lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > -- *Ivano Culmine* Cell.: +39 349 7030578 Mtalk.net: http://www.ivano.culmine.mtalk.net/ E-mail: ivano.culmine@gmail.com