Debasish Bose | 1 May 16:38 2007

Re: New Resource Notification design..

Hello,

            When CpMediaInterface::setNotificationQueue(OsMsgQ* pQueue) is appended, how we are planning to set it from test application? Means how cascaded changes are made throughout the outer shell APIs (CallManager, CpPeerCall)? sipxPhone is a test application in that sense.

 

Thanks

Debasish

 

From: sipxtapi-dev-bounces <at> list.sipfoundry.org [mailto:sipxtapi-dev-bounces <at> list.sipfoundry.org] On Behalf Of Keith Kyzivat
Sent: Thursday, April 26, 2007 4:46 AM
To: sipXtapi developers list; Dan Petrie; Alexander Chemeris; Sergey Kostanbaev
Subject: [sipxtapi-dev] New Resource Notification design..

 

Now that we've got the beginnings of resource operation messages, now we need something analogous on the notification side.   A way for resources to notify an application of events independantly -- without the need for the flowgraph to be hardcoded with resource pointers.

This is primarily for the new  MpTopologyFlowGraph, but is also going to be retrofitted onto the MpCallFlowGraph, and made to be backward compatible.

Notifications we want to support now are:

  • "Done playing" from a FromFile

  • DTMF from an input audio connection

  • "Start RTP stream" from  an input audio connection

  • "Continue RTP stream" from an input audio connection

  • "Stop RTP stream" from an input audio connection

  • RTCP events from an input audio connection

  • "Who's talking" from a bridge mixer.

  • some form of "VU meter" on local and remote inputs and outputs.

  • Signal strength (so app can provide signal "bars" like cell phones) from an input audio connection.

To do this, I was thinking a separate notification message queue alongside the flowgraph's normal message queue would be the proper thing -- either a full blown queue created when the flowgraph is created, or a pointer to one passed in later from the app via the media interface.

so - options for implementation are:

  1. Have flowgraph contain a notification queue (OsMsgQ), paired with a method that lets the flowgraph know someone plans to read the events on the queue (one that indicates it's being drained).

  2. Flowgraph contains a pointer to a notification queue.
    MediaInterface then provides a setNotificationQueue(OsMsgQ*) method, and the app calls this, passing a queue that it (the app) created.  If setNotificationQueue never gets called, then notification messages that come in just get dropped on the floor.

All of this needs a method on the flowgraph for posting a message to the resource notification queue.
When the app wishes to receive a message, it calls receiveMsg on the notification queue, looks at the message type and subtype fields, and based on that, casts the message to the appropriate class with extra data needed for a particular message.  The app then uses accessors on the derived resource message to get the information it needs.

Future:
We may wish to filter the notification messages - Consider the case where an app may only be interested in DTMF notifications, and may not care about other things like donePlaying, who's talking, etc.
Filtering of notification messages as specified by the app could be handled in:

  1. the flowgraph - FG holds a list of notification message types the app is interested in, and when a message is asked to be received, if the top item doesn't match one of the desired message types, it's dropped on the floor.

  2. the message queue itself - make a derived OsMsgQ that is smart -- it holds the filters, and when a message comes in that doesn't match the filter, it's dropped on the floor.

Is there a problem (memory leaking, etc) with dropping things from the queue from within the queue itself?

What do people think?

--
Keith Kyzivat

SIPez LLC.
SIP VoIP, IM and Presence Consulting
http://www.SIPez.com
tel: +1 (617) 273-4000

_______________________________________________
sipxtapi-dev mailing list
sipxtapi-dev <at> list.sipfoundry.org
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/
Debasish Bose | 2 May 13:21 2007

Re: MaxCalls limit in sipxtapi


I think the constraint is in sipXmediaFactoryImpl.cpp as

	#define MAX_MANAGED_FLOW_GRAPHS           16

Thanks
Debasish

-----Original Message-----
From: sipxtapi-dev-bounces <at> list.sipfoundry.org
[mailto:sipxtapi-dev-bounces <at> list.sipfoundry.org] On Behalf Of
jarol1 <at> seznam.cz
Sent: Thursday, April 26, 2007 2:54 AM
To: sipxtapi-dev <at> list.sipfoundry.org
Subject: Re: [sipxtapi-dev] MaxCalls limit in sipxtapi

Aleksey Beregov wrote:
> We have discovered that there is a hard coded limit of 10 on the number of
> simultaneous calls in SIPXTAPI.
> How was this number determined and why is it hard coded?
> 
> pInst->pCallManager = new CallManager(FALSE,
>                               pInst->pLineManager,
>                               TRUE, // early media in 180 ringing
>                               pInst->pCodecFactory,
>                               rtpPortStart, // rtp start
>                               rtpPortEnd, // rtp end
>                               localAddress.data(),
>                               localAddress.data(),
>                               pInst->pSipUserAgent,
>                               0, // sipSessionReinviteTimer
>                               NULL, // mgcpStackTask
>                               NULL, // defaultCallExtension
>                               Connection::RING, // availableBehavior
>                               NULL, // unconditionalForwardUrl
>                               -1, // forwardOnNoAnswerSeconds
>                               NULL, // forwardOnNoAnswerUrl
>                               Connection::BUSY, // busyBehavior
>                               NULL, // sipForwardOnBusyUrl
>                               NULL, // speedNums
>                               CallManager::SIP_CALL, //
> phonesetOutgoingCallProtocol
>                               4, // numDialPlanDigits
>                               CallManager::NEAR_END_HOLD, // holdType
>                               5000, // offeringDelay
>                               "",
>                               CP_MAXIMUM_RINGING_EXPIRE_SECONDS,
>                               QOS_LAYER3_LOW_DELAY_IP_TOS,
>                               10,
>                               sipXmediaFactoryFactory(NULL));
> 

I have just made 16 simultaneous calls using my client, so its not
really 10. When trying to make 17th simultaneous call, it gets blocked
somewhere.

If you look into call manager, you will see it just means that if there
are more than 10 calls, it will send a BUSY_HERE SIP (486) message back
to the sender on inbound call.

I'm planning to revamp the whole sipxtapi, introduce new parameters like
this.

Jaroslav Libak
_______________________________________________
sipxtapi-dev mailing list
sipxtapi-dev <at> list.sipfoundry.org
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/

_______________________________________________
sipxtapi-dev mailing list
sipxtapi-dev <at> list.sipfoundry.org
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/

Xiaoming wang | 2 May 14:49 2007

Re: SipXtapi

Hi,

When I build the latest Branches/SipXtapi,

I got compile error:
"Can not find speex_preprocess.h".

I install speex 1.0.5 or 1.2.1 beta.

I con not find there is speex_preprocess.h file in seepx\include folder.

Does someone know which speex version is compatible with sipXTapi?

Thanks.

Martin
_______________________________________________
sipxtapi-dev mailing list
sipxtapi-dev <at> list.sipfoundry.org
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/

Keith Kyzivat | 2 May 15:27 2007

Re: SipXtapi

What platform are you working on?

On 5/2/07, Xiaoming wang <martin <at> telmatik.com> wrote:
Hi,

When I build the latest Branches/SipXtapi,

I got compile error:
"Can not find speex_preprocess.h".

I install speex 1.0.5 or 1.2.1 beta.

I con not find there is speex_preprocess.h file in seepx\include folder.

Does someone know which speex version is compatible with sipXTapi?

Thanks.

Martin
_______________________________________________
sipxtapi-dev mailing list
sipxtapi-dev <at> list.sipfoundry.org
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/



--
Keith Kyzivat

SIPez LLC.
SIP VoIP, IM and Presence Consulting
http://www.SIPez.com
tel: +1 (617) 273-4000
_______________________________________________
sipxtapi-dev mailing list
sipxtapi-dev <at> list.sipfoundry.org
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/
Xiaoming wang | 2 May 15:40 2007

Re: SipXtapi

I am working on window 2000.
 
Thanks
 
Martin
----- Original Message -----
Sent: Wednesday, May 02, 2007 9:27 AM
Subject: Re: [sipxtapi-dev] SipXtapi

What platform are you working on?

On 5/2/07, Xiaoming wang <martin <at> telmatik.com> wrote:
Hi,

When I build the latest Branches/SipXtapi,

I got compile error:
"Can not find speex_preprocess.h".

I install speex 1.0.5 or 1.2.1 beta.

I con not find there is speex_preprocess.h file in seepx\include folder.

Does someone know which speex version is compatible with sipXTapi?

Thanks.

Martin
_______________________________________________
sipxtapi-dev mailing list
sipxtapi-dev <at> list.sipfoundry.org
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/



--
Keith Kyzivat

SIPez LLC.
SIP VoIP, IM and Presence Consulting
http://www.SIPez.com
tel: +1 (617) 273-4000
_______________________________________________
sipxtapi-dev mailing list
sipxtapi-dev <at> list.sipfoundry.org
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/
Xiaoming wang | 2 May 15:41 2007

Re: SipXtapi

I am woring on window 2000
 
Thanks
 
 
Martin
----- Original Message -----
Sent: Wednesday, May 02, 2007 9:27 AM
Subject: Re: [sipxtapi-dev] SipXtapi

What platform are you working on?

On 5/2/07, Xiaoming wang <martin <at> telmatik.com> wrote:
Hi,

When I build the latest Branches/SipXtapi,

I got compile error:
"Can not find speex_preprocess.h".

I install speex 1.0.5 or 1.2.1 beta.

I con not find there is speex_preprocess.h file in seepx\include folder.

Does someone know which speex version is compatible with sipXTapi?

Thanks.

Martin
_______________________________________________
sipxtapi-dev mailing list
sipxtapi-dev <at> list.sipfoundry.org
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/



--
Keith Kyzivat

SIPez LLC.
SIP VoIP, IM and Presence Consulting
http://www.SIPez.com
tel: +1 (617) 273-4000
_______________________________________________
sipxtapi-dev mailing list
sipxtapi-dev <at> list.sipfoundry.org
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/
Keith Kyzivat | 2 May 16:33 2007

Re: SipXtapi

If you do not need support for the speex codec, you can edit the project settings and remove the preprocessor define "HAVE_SPEEX"
from each project.  That should get you beyond it.

As for including speex support, look here:
http://sipx-wiki.calivia.com/index.php/SipXtapi_and_sipXezPhone_Build_Environment_for_Windows#Installing_Speex_libraries

The following is a good guide, which is pointed to right in the toplevel readme.txt file.
http://sipx-wiki.calivia.com/index.php/SipXtapi_and_sipXezPhone_Build_Environment_for_Windows

On 5/2/07, Xiaoming wang <martin <at> telmatik.com> wrote:
I am woring on window 2000
 
Thanks
 
 
Martin
----- Original Message -----
Sent: Wednesday, May 02, 2007 9:27 AM
Subject: Re: [sipxtapi-dev] SipXtapi

What platform are you working on?

On 5/2/07, Xiaoming wang <martin <at> telmatik.com> wrote:
Hi,

When I build the latest Branches/SipXtapi,

I got compile error:
"Can not find speex_preprocess.h".

I install speex 1.0.5 or 1.2.1 beta.

I con not find there is speex_preprocess.h file in seepx\include folder.

Does someone know which speex version is compatible with sipXTapi?

Thanks.

Martin
_______________________________________________
sipxtapi-dev mailing list
sipxtapi-dev <at> list.sipfoundry.org
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/



--
Keith Kyzivat

SIPez LLC.
SIP VoIP, IM and Presence Consulting
http://www.SIPez.com
tel: +1 (617) 273-4000



--
Keith Kyzivat

SIPez LLC.
SIP VoIP, IM and Presence Consulting
http://www.SIPez.com
tel: +1 (617) 273-4000
_______________________________________________
sipxtapi-dev mailing list
sipxtapi-dev <at> list.sipfoundry.org
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/
Amith Nambiar | 2 May 16:38 2007
Picon

Re: EVENT_CATEGORY_NOTIFY not fired ?

Check the code for CheckVMail.cpp in the checkout of sipxtapi. You should be able to get NOTIFY's, i think.
best,
Amith

On 5/2/07, federico jose Vaggi <federico.vaggi <at> gmail.com> wrote:
Hi:
 
I'm From Argentina.
I'm developing a sip phone based on sipfoundry libraries.
I read your cuestion in the list and I have the same problem as you.
I don't receive then EVENT_CATEGORY_NOTIFY in my callback function. I want to implement the mwi feature and I cann t do it.
 
Can you solve this problem ?
 
Thanks
Federico Vaggi

_______________________________________________
sipxtapi-dev mailing list
sipxtapi-dev <at> list.sipfoundry.org
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/
Daniel Petrie | 2 May 22:26 2007

WinCE performance

Jaroslav has suggested that having many threads may be impacting
performance on devices with limited resources (e.g. WinCE running on
400MHz).  I would like to talk about this in a jabber chat conference
tomorrow (Thrus.).  Can we do this 10AM Boston time/16:00 Prague/18:00
Moscow.  Lets try to scope it to 30 minutes.  The things that I think
would make sense to talk about initially are:

1) How can we test and prove that multiple threads are a performance
problem and that combining them somehow will save us something
significant.

2) Jaroslav has suggested an OsSharedServerTask that could perform the
tasks of several OsServerTask(s).  I think this is an interesting idea
if this does indeed save something significant.  I would like to
suggest that it should be possible to do this in a
optional/configurable way that is transparent to the derived
OsServerTask classes.  However I do not think that this makes sense
unless we get a significant performance pay back for the effort and
complexity this causes.  So I would like to focus more on point 1)
rather than designing something that we are only speculating will be
good.  

To join you will need to use a Jabber client that supports conferences
(chat rooms).  Mirada, Gaim and Psi are known to work (googletalk does
not).  Send me mail it you would like to join and I will send the chat
room details.  Please include your jabber user ID.

Cheers,
Dan

SIPez LLC  
SIP VoIP, IM and Presence Consulting  
http://www.sipez.com  
tel: +1 (617) 273-4000
_______________________________________________
sipxtapi-dev mailing list
sipxtapi-dev <at> list.sipfoundry.org
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/

Amith Nambiar | 3 May 09:57 2007
Picon

Re: EVENT_CATEGORY_NOTIFY not fired ?

i tried using checkVmail.cpp with my SIP server. I'm able to get NOTIFY's for event : presence. I do not have message-summary support on my server, so i could not check it. If you know of any server which has that enabled. Let me know. I will try and get back with the results for that server.

best,
Amith

On 5/3/07, Amith Nambiar <watchersparadise <at> gmail.com> wrote:
i will check that and let you know.

-Amith

On 5/2/07, federico jose Vaggi < federico.vaggi <at> gmail.com > wrote:
yes I  check the CheckVMail.cpp  code.
 
Basically I use the sipxezphone code
 
I invoque first
sipxInitialize(&g_hInst, iSipPort, iSipPort, PORT_NONE, 8000);
sipxEventListenerAdd(g_hInst, SipCallbackProc, NULL) ;
 
then I invoque the SipxConfigSubscribe function with the following parameters 
 
SipxConfigSubscribe(m_hInst,
                        m_hLine, 
                        szSipUrl,   
                        "message-summary",
                        "application/simple-message-summary",
                        1,
                        &m_hSub);
 
in szSipUrl  I put the ip address of an asterisk server.
 
In the event handler I wait for the EVENT_CATEGORY_NOTIFY
 
bool sipXmgr::SipCallbackProc(SIPX_EVENT_CATEGORY category, void* pInfo, void* pUserData)
{
    // Add to Event Log
    sipXmgr::getInstance().addToEventLog(category, pInfo, pUserData) ;

    // Delegate to handlers
    switch (category)
    {
        case EVENT_CATEGORY_CALLSTATE:
            return sipXmgr::getInstance().handleCallstateEvent(pInfo, pUserData);
        case EVENT_CATEGORY_LINESTATE:
            return sipXmgr::getInstance().handleLinestateEvent(pInfo, pUserData);
        case EVENT_CATEGORY_INFO_STATUS:
            return sipXmgr::getInstance().handleInfoStatusEvent(pInfo, pUserData);
        case EVENT_CATEGORY_INFO:
            return sipXmgr::getInstance().handleInfoEvent(pInfo, pUserData);
        case EVENT_CATEGORY_SECURITY:
            return sipXmgr::getInstance().handleSecurityEvent(pInfo, pUserData);
        case EVENT_CATEGORY_MEDIA:
            return sipXmgr::getInstance().handleMediaEvent(pInfo, pUserData);
        case EVENT_CATEGORY_NOTIFY:
   return sipXmgr::getInstance().handleNotifyEvent(pInfo, pUserData);
  default:
            return false;
    }
    return false;
}

and ....

bool sipXmgr::handleNotifyEvent(void* pInfo, void* pUserData)
{
 SIPX_NOTIFY_INFO* pNotifyInfo = static_cast<SIPX_NOTIFY_INFO*>(pInfo);
 LogEventEx("AtlSIp","NOTIFYEVENT");
 return true;

}

In this function I only Log the event, I did this only for debugging to see if the event is trigger

but it sees that I don t receive the event.



 
2007/5/2, Amith Nambiar <watchersparadise <at> gmail.com>:
if you could send me the code i could help.
-Amith


On 5/2/07, federico jose Vaggi <federico.vaggi <at> gmail.com > wrote:
Hi:
 
I'm From Argentina.
I'm developing a sip phone based on sipfoundry libraries.
I read your cuestion in the list and I have the same problem as you.
I don't receive then EVENT_CATEGORY_NOTIFY in my callback function. I want to implement the mwi feature and I cann t do it.
 
Can you solve this problem ?
 
Thanks
Federico Vaggi




_______________________________________________
sipxtapi-dev mailing list
sipxtapi-dev <at> list.sipfoundry.org
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/

Gmane