[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