I'd like to get feedback on a crazy proposal I've been batting around. Many times an XMPP client or other JID is in a context where it has some access to PSTN (either because the client is on a cell phone, or it has access to a VoiP bridge, or it *is* a VoiP gateway of some kind). Jingle could be used to initiate a voice session whose peer-to-peer component is routed entirely over PSTN in these cases. For example, [email protected] wants to talk to [email protected] and indicates that one option for contact is to call +15557254545

<iq from='[email protected]/orchard'
   id='ph37a419'
   to='[email protected]/balcony'
   type='set'>
 <jingle xmlns='urn:xmpp:jingle:1'
          action='session-initiate'
          initiator='[email protected]/orchard'
          sid='a73sjjvkla37jfea'>
   <content creator='initiator' name='voice'>
     <description xmlns='urn:xmpp:jingle:apps:pstn:1' />
     <transport xmlns='urn:xmpp:jingle:transports:pstn:1'>
        <candidate id='el0747fg11'
                   tel='+15557254545' />
     </transport>
   </content>
 </jingle>
</iq>

ACK:

<iq from='[email protected]/balcony'
   id='ph37a419'
   to='[email protected]/orchard'
   type='result'/>

[email protected] accepts the session, and indicates that other options include calling +15557253232 with callerid set to +15557772222 or calling +15558881234 and then adding the DTMF string *714:

<iq from='[email protected]/balcony'
   id='jd82f517'
   to='[email protected]/orchard'
   type='set'>
 <jingle xmlns='urn:xmpp:jingle:1'
          action='session-accept'
          responder='[email protected]/balcony'
          sid='a73sjjvkla37jfea'>
   <content creator='initiator' name='voice'>
     <description xmlns='urn:xmpp:jingle:apps:pstn:1' media='audio' />
     <transport xmlns='urn:xmpp:jingle:transports:pstn:1'>
        <candidate id='el0747fg11'
                   tel='+15557253232'
                   callerid='+15557772222' />
        <candidate id='el0747fg11'
                   tel='+15558881234'
                   dtmf='*714' />
     </transport>
   </content>
 </jingle>
</iq>

ACK:

<iq from='[email protected]/orchard'
   id='jd82f517'
   to='[email protected]/balcony'
   type='result'/>

[email protected] selects a mechanism (this part is maybe tricky in some cases: since some selections will cost one party more money and others the other party more money -- I guess still just using priority numbers? I mean, if you offered a candidate clearly you're ok with it being used.) and lets [email protected] know:

<iq from='[email protected]/orchard'
   id='pd81b49s'
   to='[email protected]/balcony'
   type='set'>
<jingle xmlns='urn:xmpp:jingle:1'
         action='transport-info'
         initiator='[email protected]/orchard'
         sid='a73sjjvkla37jfea'>
  <content creator='initiator' name='audio'>
    <transport xmlns='urn:xmpp:jingle:transports:pstn:1'>
        <candidate id='el0747fg11'
                   tel='+15558881234'
                   dtmf='*714' />
    </transport>
  </content>
</jingle>
</iq>

ACK:

<iq from='[email protected]/balcony'
   id='pd81b49s'
   to='[email protected]/orchard'
   type='result'/>

And then [email protected] uses whatever PSTN connection it has available to call +15558881234,*714. Once the PSTN session has ended (because Juliet hung up, or similar) the session is over:

<iq to='[email protected]/orchard'
   id='bv81gs75'
   from='[email protected]/balcony'
   type='set'>
 <jingle xmlns='urn:xmpp:jingle:1'
          action='session-terminate'
          sid='a73sjjvkla37jfea'>
   <reason>
     <success/>
   </reason>
 </jingle>
</iq>

ACK:

<iq to='[email protected]/balcony'
   id='bv81gs75'
   from='[email protected]/orchard'
   type='result'/>

Hopefully the above is clear enough to discuss. My main use case is a PSTN Gateway which could, on receiving an inbound call, be told by the XMPP client to forward the call over PSTN to a receiving number (either with upstream caller id or rewriting caller id, depending on application). However, I could see something like this being used to enable XMPP contacts to call each other over PSTN directly (without advertising a permanent telephone number in vCard, but instead giving out numbers on a case-by-case call-establishment basis), or many other cases.

--
Stephen Paul Weber, @singpolyma
See <http://singpolyma.net> for how I prefer to be contacted
edition right joseph
_______________________________________________
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: [email protected]
_______________________________________________

Reply via email to