[Ekiga-list] ekiga call flow

Damien Sandras dsandras at seconix.com
Wed Dec 6 09:35:44 UTC 2006


Hi,

This question should be addressed to openh323 at openh323.org, we have
taken the decision to concentrate only on Ekiga help.

Thanks,


Le mercredi 06 décembre 2006 à 11:33 +0530, Ramachandran M a écrit :
> hi all
>  
> i have some doubt in the SIP call flow.Please help me....
>  
> STEPS:
> 1.sender receives the 180 ringing, so onrecivedRinging() is to be
> called.
>  
> void SIPConnection::OnReceivedRinging(SIP_PDU & /*response*/)
> {
>   PTRACE(2, "SIP\tReceived Ringing response");
>  
>   if (phase < AlertingPhase)
>   {
>     phase = AlertingPhase;
>     OnAlerting();
>   }
>  
> 2.In OnReceivedRinging() function,OnAlerting is also called.
> BOOL OpalCall::OnAlerting(OpalConnection & connection)
> {
>   PTRACE(3, "Call\tOnAlerting " << connection);
>  
>   BOOL ok = FALSE;
>  
>   if (!LockReadWrite())
>     return FALSE;
>  
>   partyB = connection.GetRemotePartyName();
>  
>   UnlockReadWrite();
>  
> 
>   BOOL hasMedia =
> connection.GetMediaStream(OpalMediaFormat::DefaultAudioSessionID,
> TRUE) != NULL;
>  
>   for (PSafePtr<OpalConnection> conn(connectionsActive,
> PSafeReadOnly); conn != NULL; ++conn) {
>     if (conn != &connection) {
>       if (conn->SetAlerting(connection.GetRemotePartyName(),
> hasMedia))
>         ok = TRUE;
>     }
>   }
>  
>   return ok;
> }
> 
> 3. See this line in OnAlerting() function:
> conn->SetAlerting(connection.GetRemotePartyName(), hasMedia))
>  
>  
> here we are calling setAlerting()
>  
>  
>  
> 4.the setalerting() definition is given below:
>  
> BOOL SIPConnection::SetAlerting(const PString & /*calleeName*/,
> BOOL /*withMedia*/)
> {
>   if (IsOriginating()) {
>     PTRACE(2, "SIP\tSetAlerting ignored on call we originated.");
>     return TRUE;
>   }
>  
>   PTRACE(2, "SIP\tSetAlerting");
>  
>   if (phase != SetUpPhase) 
>     return FALSE;
>  
>   SIP_PDU response(*originalInvite, SIP_PDU::Information_Ringing);
>   SendPDU(response, originalInvite->GetViaAddress(endpoint));
>   phase = AlertingPhase;
>  
>   return TRUE;
> }
> 
> 
>  
>  
> Here we are sending SIP_PDU::Information_Ringing to the "PartyB",why
> it is so?
>  
> But actual flow i studied in SIP TUTORIAL is 
> partyA has to send the invite,
> the partyB has to send the 180::Ringing,200::OK
> then PartyA has to send the ACK
>  
>  
> Can you clarify me?
>  
>  
> thanks
>  
>                   
>  
> _______________________________________________
> ekiga-list mailing list
> ekiga-list at gnome.org
> http://mail.gnome.org/mailman/listinfo/ekiga-list
-- 
 _      Damien Sandras
(o-     
//\   Ekiga Softphone : http://www.ekiga.org/
v_/_ NOVACOM         : http://www.novacom.be/
          FOSDEM          : http://www.fosdem.org/
          SIP Phone       : sip:dsandras at ekiga.net
                       




More information about the ekiga-list mailing list