Hi Manmeet I'm talking about client now :) 1. These 2 master_port terminology seems to confuse users :( 2. So what is "pjmedia_conf->master_port" internally used for ? On Tue, Jan 29, 2013 at 6:22 PM, Manmeet Singh <manmeets at gc-solutions.net>wrote: > Hello Khoa, > > Sorry I answered in just my context only. Basically I was answering your > question keeping in mind that you may be looking at developing a server, so > in case of server you may be running numerous conferences and you cannot > keep sound port as zero port for all the conferences. You do need sound > port to play sound on machine incase you are running a client and > conferencing with multiple parties with their calls landing on your system. > > pjmedia_conf->master_port (in conference.c) is used internal to > conference, where as pjmedia_master_port (in master_port.c) is used for > controlling the start and stop of conference mixing by using > pjmedia_master_port_start and pjmedia_master_port_stop respectively and > other similar functions. > > Regards > Manmeet > > > On 01/29/2013 04:37 PM, Khoa Pham wrote: > > Hi Manmeet, sorry for asking so many questions :) > > 1. PJMEDIA_CONF_NO_DEVICE means we don;t need sound device to play audio > ? > 2. In this link > http://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__CONF.htm, they said > "If PJMEDIA_CONF_NO_DEVICE options is specified, no sound device will be > created in the conference bridge. > Application MUST acquire the port interface of the bridge by calling > pjmedia_conf_get_master_port(), and connect this port interface to a sound > device port by calling pjmedia_snd_port_connect(), or to a master port > (pjmedia_master_port) if application doesn't want to instantiate any sound > devices." > Why should we get master port, then connect to master port ? > > What is the difference between pjmedia_conf->master_port (in > conference.c) and pjmedia_master_port (in master_port.c) ? > > > On Tue, Jan 29, 2013 at 2:56 PM, Manmeet Singh <manmeets at gc-solutions.net>wrote: > >> Hello Khoa, >> >> Please find my answers inline below. >> >> Regards >> Manmeet >> >> >> On 01/29/2013 12:32 PM, Khoa Pham wrote: >> >> Hi Manmeet, >> >> 1. In this link >> http://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__MASTER__PORT.htm, >> they say there are 2 ports connecting to Master Port, what are they ? >> >> As mentioned in the document, the two ports are for media streams. >> Imagine the 2 ports as pipes with their other ends connected to >> clients/files/voice processors and the master port as pump connecting the >> two streams/port together, it pulls data from one stream and pushes it onto >> the other. >> >> >> 2. In file conference.c, "pjmedia_conf" structure, there is field >> "pjmedia_port *master_port" >> And in master_port.c, there is structure "pjmedia_master_port". Are they >> related ? >> >> Yes, when you create a conference with PJMEDIA_CONF_NO_DEVICE option, an >> internal master port is created and attached to the conference, now to >> start and stop the mix, you need to start and stop the master port. Below >> code snippet is taken from pjsip-apps/src/samples/confbench.c >> >> status = pjmedia_conf_create( pool, >> PORT_COUNT, >> CLOCK_RATE, >> 1, SAMPLES_PER_FRAME, 16, >> *PJMEDIA_CONF_NO_DEVICE*, >> &conf); >> if (status != PJ_SUCCESS) { >> app_perror(THIS_FILE, "Unable to create conference bridge", status); >> return 1; >> } >> >> conf_port = pjmedia_conf_get_master_port(conf); >> >> /* Create master port */ >> status = pjmedia_master_port_create(pool, null_port, conf_port, 0, >> &master_port); >> >> pjmedia_master_port_start(master_port); >> ........ >> ........ >> pjmedia_master_port_stop(master_port); >> >> >> >> >> On Tue, Jan 29, 2013 at 1:56 PM, Manmeet Singh <manmeets at gc-solutions.net >> > wrote: >> >>> Hello Khoa, >>> >>> Port zero is port in the conference. It could be Master Port or Sound >>> Port depending on what option you provided when calling >>> pjmedia_conf_create. >>> >>> >>> Regards >>> Manmeet >>> >>> On 01/29/2013 12:19 PM, Khoa Pham wrote: >>> >>> Hi Manmeet, >>> >>> So Sound Device Port uses sound hardware clock, and Master Port uses >>> Clock Generator ? >>> And in 1 conference bridge, there should be only 1 of these 2 Ports ? >>> >>> In this link >>> http://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__CONF.htm, they >>> said >>> "Under normal operation (i.e. when PJMEDIA_CONF_NO_DEVICE option is NOT >>> specified), the bridge internally create an instance of sound device and >>> connect the sound device to port zero of the bridge. >>> >>> If PJMEDIA_CONF_NO_DEVICE options is specified, no sound device will >>> be created in the conference bridge. >>> Application MUST acquire the port interface of the bridge by calling >>> pjmedia_conf_get_master_port(), and connect this port interface to a sound >>> device port by calling pjmedia_snd_port_connect(), or to a master port >>> (pjmedia_master_port) if application doesn't want to instantiate any sound >>> devices." >>> >>> What is port zero? If port zero is Master Port, then Sound device is >>> connected to Master Port ?? >>> >>> >>> >>> On Tue, Jan 29, 2013 at 12:33 PM, Manmeet Singh < >>> manmeets at gc-solutions.net> wrote: >>> >>>> Guys, >>>> Please correct me here if I am wrong in any point. I have been studying >>>> PJSip for sometime now but I may have many incorrect assumptions when >>>> trying to connect the dots. :) >>>> >>>> Hello Khoa, >>>> In conferencing, the way it works port zero would either be Sound >>>> Device Port or Master Port. These are attached for a reason, both these >>>> ports have a unique property, they provide clock/timing to the media they >>>> connect to. Other media ports by design are passive, they would not push >>>> the conference to take their buffers and mix them for other parties to >>>> listen. Sound card interfaces require callbacks which either provide >>>> recorded voice in buffer or while playing a buffer when finished would ask >>>> for next buffer. >>>> >>>> Sound card has callbacks and on similar pattern media port internally >>>> has an instance of Clock Generator, so for the conference mixing to happen >>>> you need to have one of these added to the conference. >>>> >>>> If you have any further queries or if any of my points above are not >>>> clear, please do let me know. >>>> >>>> Regards >>>> Manmeet >>>> >>>> >>>> On 01/28/2013 10:24 PM, Khoa Pham wrote: >>>> >>>> Hi Manmeet, >>>> >>>> I've read those 3 links. please explain to me what is the relation >>>> among sound device port, master port, and port zero. >>>> >>>> >>>> On Mon, Jan 28, 2013 at 8:37 PM, Manmeet Singh < >>>> manmeets at gc-solutions.net> wrote: >>>> >>>>> Hello Khoa, >>>>> >>>>> If following links don't clarify things then please do let me know. >>>>> Then I'll try and give you a snapshot of the complete scenario of how the >>>>> conference is designed in pjsip. >>>>> >>>>> snd_port >>>>> http://www.pjsip.org/pjmedia/docs/html/group__PJMED__SND__PORT.htm >>>>> master_port >>>>> http://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__MASTER__PORT.htm >>>>> port >>>>> http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__PORT.htm >>>>> >>>>> The media clock/timing extends the media port concept that is >>>>> explained in Media Ports Framework<http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__PORT.htm>. >>>>> When clock is present in the ports interconnection, media will flow >>>>> automatically (and with correct timing too!) from one media port to another. >>>>> >>>>> There are few objects in PJMEDIA that are able to provide clock/timing >>>>> to media ports interconnection: >>>>> >>>>> - Sound Device Port<http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMED__SND__PORT.htm> >>>>> The sound device makes a good candidate as the clock source, and >>>>> PJMEDIA Portable Sound Hardware Abstraction<http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMED__SND.htm> >>>>> is designed so that it is able to invoke operations according to >>>>> timing driven by the sound hardware clock (this may sound complicated, but >>>>> actually it just means that the sound device abstraction provides callbacks >>>>> to be called when it has/wants media frames). >>>>> See Sound Device Port<http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMED__SND__PORT.htm> >>>>> for more details. >>>>> >>>>> >>>>> - Master Port<http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__MASTER__PORT.htm> >>>>> The master port uses Clock Generator<http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__CLOCK.htm> >>>>> as the clock source. By using Master Port<http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__MASTER__PORT.htm>, >>>>> it is possible to interconnect passive media ports and let the frames flow >>>>> automatically in timely manner. >>>>> Please see Master Port<http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__MASTER__PORT.htm> >>>>> for more details. >>>>> >>>>> >>>>> Regards >>>>> Manmeet >>>>> >>>>> >>>>> On 01/28/2013 06:53 PM, Khoa Pham wrote: >>>>> >>>>> Thanks Gaurav for the prompt reply, I've already read that link. >>>>> "A master port has two media ports connected to it". What are those 2 >>>>> media ports? >>>>> In "pjmedia_conf" structure, there are "master_port", "snd_port" and >>>>> "ports" list, how are they related ? >>>>> >>>>> >>>>> On Mon, Jan 28, 2013 at 8:15 PM, Gaurav Srivastava < >>>>> gaurav.srivastava2 at agnity.com> wrote: >>>>> >>>>>> Hi Khoa, >>>>>> >>>>>> >>>>>> >>>>>> Please go through the link >>>>>> >>>>>> >>>>>> http://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__MASTER__PORT.htm >>>>>> >>>>>> >>>>>> >>>>>> In case not fruitful, please let me know. >>>>>> >>>>>> >>>>>> >>>>>> Thanks and Regards, >>>>>> >>>>>> Gaurav >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -----Original Message----- >>>>>> *From:* pjsip [mailto:pjsip-bounces at lists.pjsip.org] *On Behalf Of *Khoa >>>>>> Pham >>>>>> *Sent:* Monday, January 28, 2013 6:33 PM >>>>>> *To:* pjsip list >>>>>> *Subject:* [pjsip] What is master port and port zero ? >>>>>> >>>>>> >>>>>> >>>>>> When reading conference bridge on pjsip.org/pjmedia/docs, I see >>>>>> these 2 port. What are they, are they the same ? >>>>>> >>>>>> >>>>>> >>>>>> When running pjsua_app, I use "cl" command to list port in conference >>>>>> bridge, I see >>>>>> >>>>>> >>>>>> >>>>>> pjsua_var.mconf->master_port->info->name = "Wave mapper" >>>>>> >>>>>> pjsua_var.mconf->ports[0]->name = "Wave mapper" >>>>>> >>>>>> pjsua_var.mconf->ports[1]->name = "ringback" >>>>>> >>>>>> pjsua_var.mconf->ports[2]->name = "ring" >>>>>> >>>>>> pjsua_var.mconf->ports[3]->name = "sip:voip1 at freesipserver.com" >>>>>> >>>>>> >>>>>> >>>>>> And it says ports[0] is transmitting to port[3], and port[3] is >>>>>> transmitting to ports[0] >>>>>> >>>>>> >>>>>> >>>>>> Any answer is highly appreciated, thanks in advance. >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Khoa Pham >>>>>> HCMC University of Science >>>>>> Faculty of Information Technology >>>>>> >>>>>> _______________________________________________ >>>>>> Visit our blog: http://blog.pjsip.org >>>>>> >>>>>> pjsip mailing list >>>>>> pjsip at lists.pjsip.org >>>>>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Khoa Pham >>>>> HCMC University of Science >>>>> Faculty of Information Technology >>>>> >>>>> >>>>> _______________________________________________ >>>>> Visit our blog: http://blog.pjsip.org >>>>> >>>>> pjsip mailing listpjsip at lists.pjsip.orghttp://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org >>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> Khoa Pham >>>> HCMC University of Science >>>> Faculty of Information Technology >>>> >>>> >>>> >>> >>> >>> -- >>> Khoa Pham >>> HCMC University of Science >>> Faculty of Information Technology >>> >>> >>> >> >> >> -- >> Khoa Pham >> HCMC University of Science >> Faculty of Information Technology >> >> >> > > > -- > Khoa Pham > HCMC University of Science > Faculty of Information Technology > > > -- Khoa Pham HCMC University of Science Faculty of Information Technology -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20130129/bc377aa0/attachment-0001.html>