 So, actually what we were discussing yesterday was the SIP preposite and how an invite message actually go. Remember there are only two kind of messages in a SIP system. One is the invite. Other, all other are categorized as a non-invite category. So, this is actually really written in capital, so let me stick it. And other kind of requests are will be non-invite requests. The most important thing is that acknowledgement is only sent for, invite is a request, there will be a response and then there is an acknowledgement which has to be sent. This only happens for the invite request. For non-invite request, there is no acknowledgement sent, it is always a request and response kind of thing. So, SIP preposite which I mentioned was there is going to be a proxy server, I mentioned two proxies there and these are SIP phones or soft phones or any device which is basically a SIP client. And most of the signaling will always happen through this route in the beginning to set up the connections. Once they both know each other's identity, they can do the talk directly. So, this is the media transport technically and of course, signaling also can be done over this line, once it has been set up, this is what we call SIP preposite. So, initial case if I put the timing diagram here is the first thing which is been sent from this to this is invite and that is what we were discussing yesterday, what this invite will actually look like. And the URL for this, URI for this SIP client is and you should actually appreciate that this is something like a mail, mail ID, but SIP colon is something like a STTP transport URI. So, it is a mix of SMTP or the mail addressing formats and STTPs. In fact, this protocol was built because STTP neither STTP nor SMTP both were good enough for setting up the multimedia sessions, so lot of things actually have been taken from them. So, hydro format which we are discussing actually has come from STTP, MIME type is common between internet messaging protocol as well as in STTP both. So, coming back to how the invite will look like, so invite I think that is what we were discussing. This invitation is for this person and it is doing SIP 2.0 format. If you put SIP 1.0, this is required for compatibility reasons. See if you are a proxy and you are where the clients can be actually implemented using SIP 1.0 or SIP 2.0 both. So, since they are specifying in their request, so as a proxy server which are going to implement you can figure out the request corresponds to which kind of client and based on that you can choose a different behavior in responding back or you might actually do what we call again a gatewaying kind of thing. So, you talk the client which is connected to you is with 1.0, but onward you would like to do 2.0. So, you do all the translations, so that capability also can be built within a proxy. Usually it will be implemented as back to back user agent client that is what is known as actually B2, B U A C. So, proxies are again of two kinds I have not specifically mentioned. So, these are stateless and stateful. I will explain what does that actually mean or maybe I can explain that. So, one kind of proxy is that this is a user agent client it maintains all the state it goes to the proxies. Proxy understands everything about it, so it keeps the complete track of this transaction which is happening with this maintains the whole state and on his behalf then he maintains does the communication further. So, this is maintaining the state of the transaction that is a stateful proxies that is a stateful proxy. So, there is a server sitting here there is a user agent client, user agent server and there is another user agent client which is communicating further. So, there is a data structures which are maintaining the state while in a stateless proxy the state of the transaction is not maintained a stateless proxies. So, here user agent client passes on the message what it does simply receives the request changes whatever is required acts the header whatever it is and transports it further as it is it does not maintain the status. So, when the response will come from the other side it will send back the response it is as good as that actually. So, the proxy which I am talking about here is a stateful proxy not a stateless. So, a stateless proxy also can exist. So, what is the advantage of stateful proxy because. Mostly we will be implementing a stateful only the stateless does not keep for example, it cannot send an ok I am still trying the connection further. So, it will not send the signal back for example, that 100 thing which will say I am still trying kindly wait. So, the first line will be this as I mentioned then there is a via header field via header field tells that for this particular request remember a request will have at least one response can have more than one response also. So, you send a request one response comes then there can be multiple responses, but at least one response has to be there ok. This via field will tell that who is sending and this is what is going to be used when the return response will come it is going to come via this that is what it actually means ok. So, in this case it gives a complete transport the SIP version which is there. So, the user is actually sending the invite through this particular client. So, actually message the response will come back to this particular client that is what it means actually and this will then communicate back to the user. So, that tells the machine which is sitting in there can be multiple remember within a single machine there can be multiple user agent client running simultaneously that is possible actually. So, you have to tell through this machine only it has to come you cannot give your own address. So, that is why you are giving an IP address there and the machine will decide how it has to be handled and what is this PC 33 is nothing as somebody asked yesterday in the domain name system database this PC 33 dot Atlanta dot com when it this you will do a DNS query domain name service query it will give back the IP address of that machine to which the response has to come back. This machine is currently the IP give the DNS name for the soft phone used by Alice in this case and then of course there is a semicolon branch and then there is a random string where I put something here. So, this is this for identification purpose actually this for identification and then after that you have to understand the first letter is always capital for the field attribute and the attributes value will come after colon always and these usually will come in one line most of the header fields and next forward says for how many times this request which is being generated will be can be forwarded for that. So, because SIP proxies can keep on doing handovers, but how many times each time you do forward you reduce this number by 1 when it becomes 0 you know more forwarded this is like time to leave field 2 is a destination to whom the invite has to be sent you are trying to make a phone call to Bob. Now, this first character is usually known as display name this is actually the name which will be displayed to user it is not actually the URI this also being used in your email systems. So, you write your name your phone number whatever it is in your display name email comes later on and that comes in this angle brackets. So, this is very similar to email angle brackets will close users will like usually get this is your arbitrary thing they are of course rules for setting up this particular thing. So, this is again given in internet message format there is an RFC which is uploaded on transparency in that this is given or you can look at it from IETF there is a from field correspondingly always the first character is capital in all the field names. Now, there is one more important thing which will come here is a tag. So, if Alice is simultaneously making multiple phone calls that is possible it might have set up multiple sessions each time a tag will be different Bob might be receiving multiple sessions each time a tag will be different for each session. So, the in fact currently there is no tag because this is a initial invite when the response will come back a tag will be added by the Bob and this tag will be simply replicated till this dialogue will exist for this particular call this tag will be just simply replicated everywhere on the in the beginning only the Alice will machine will be choosing this is randomly generated by soft phone. So, in this case I have just put some random number. So, these two tags can uniquely identify Bob and Alice's soft phones. Now, there is only problem is that we need to also identify that and the third entry because Bob may not be using one phone but multiple phones simultaneously. So, he might be using a voicemail box or something else. So, there is a possibility of actually using same tag if it is a same machine can be assured but otherwise it cannot be. Soft phone. This one is by Alice. Bob still has not received the invite message. So, there is nothing there only when he will respond back at the time he will add his own time. It is a random string generate it is not a sequence number it is not incremented is soft phones local feature internet standard does not bother about it. Then you will have call ID. This usually is a random number and the machine IP address which is being actually used. So, in case because we have a DNS name already being assigned to this source which is pc33.atunta.com if it is not there you simply use an IP address. Dot a decimal notation IP address has to be generated. So, in fact there is no need to always use domain names you can actually use IP addresses that is permitted. The call ID usually will be some random number generated by this random string, but that is not good enough. Now, this is going to be unique nobody else can generate it because this call was initiated by this IP address it is generating the string it can maintain whatever such instance is running it can ensure that this ID cannot be generated by anybody else in the world. This is unique call the way in TCP IP connections we always use that quadruplet source IP address destination IP address source port and destination port. And that is a unique all across the world all TCP connections which are working at any point of time none of them will actually have all four set values which are going to be same that is not possible same is also true with this. So, in fact these this particular tag and another tag which will come once the call is set up or in the response to this these three things together if you put this triplet is unique always unique. So, this is actually redundancy built into the system you can observe that actually. And this uniquely identifies a call this uniquely identifies a call. And so, all these three random numbers put together identifies something known as dialogue. In earlier RFC 1.0 this was used to we used to call it a call lag. So, now this call lag is not there it is now we call it dialogue then of course C sequence interestingly I am using UDP but I need reliability in the system sequence numbers of the messages is extremely important of the command this whole thing is one command going in one UDP packet ok. But if it is lost then what you will do you should get a response within certain time then you will read transmitted response can come multiple times. So, important thing if I send first command I will put a sequence number when I send the next command I will change the sequence number this one is command sequence. So, again this is for reliability purpose. So, that you can figure out the duplicates and all the responses when you come back will just duplicate this whatever is the value of this particular attribute. So, in this case there is some number which is given the command is invite. So, this invite this command will keep on changing sequence number will keep on upgrading one by one. And of course the contact this is not the CIP URI of the center this actually the actual URI at that point of time. So, if you for example do not send invite you send a register message. So, this will consist of register it will be sent to a register by your phone whenever the phone boots up. So, it will give the restars URI whatever it is everything will come the contact some fields will be there some will not be there the contact field is what is going to be registered. So, from and contact these two together will form the binding in that because what will happen your domain proxy server will have your URI does not mean that it can contact you your contact at that point of time will be your actual machine address which is going to be used. So, here it is currently written as and this can keep on changing actually depending on if the Alice keeps on moving IP address changes. So, when the response will come you are telling the receiver that the contact is this for the sender. So, you can once you understand this authenticates everything you can directly get in touch here and starts talking actually start doing direct point peer to peer signal. Of course, the worst thing will be used generate all this header and contact you for somebody else. So, when peer to peer connection happens you might be talking to a wrong person that is taking care of by the authentication challenge a response method. But, what will happen is if the Alice is proper and for this can authenticate with the proxy server proxy server can authenticate Alice. So, whatever Alice is telling as a proxy actual contact at that point of time where the call has to be made it must be justified. If I authenticate you say for all your letters should be dispatched to him it is fine I will always do that because I have authenticated with you there is nothing to worry about if I do not authenticate then there is a problem actually then somebody else can need not even create a client in your name it will have his own client but may send a request in your name and then I can start pairing with somebody else so spoofing can happen in that case. But, security is currently is not discussed security is a separate thing as I mentioned earlier also. In case of multi user on these same machines from and contact both will change multi user on one. Yeah, both of them will change only this address will remain same. You will have multiple bindings pointing to the same machine address so machine address is only this part this is a CIP URI. This will change. Yes, CIP colon and the names will keep on changing CIP colon will remain same and IP address remain same. Multiple users are there on the same machine soft phone. So, bindings will keep on changing. You can actually have even a binding like this for same URI same CIP URI you are going to have multiple different devices can be actually multiple different contacts can be there in the register but currently I am not looking for the registration process that is also permitting. So, when a proxy will get a request to connect to some CIP URI and then it will look into location server what we call register register only what it does a CIP URI comes in and it maps on to certain other URI CIP URIs. Now, this CIP URIs are dynamically changing depending on where you are connected or your soft phone is installed or who is registered with that this address will keep on changing but remember your identity here remains same irrespective of where you are. So, this dynamic mapping from here to here if you are going to go that is done by register or location server for the destination site for receiver you are telling actually. So far you can authenticate well with your proxy and proxy can take up a request on your behalf he can set up the connection then directly peer to peer. So, if you go to your friend's office you can actually make the registration from his machine and then you can start getting calls there very simple way of doing the call forwarding actually but that is through register not through invite this invite structure. So, after the contact you will have a content type this is typically what you will see in the STTP response or a message. So, since invite will contain a session description message so, SDP technically is not a protocol it is a format in which the session description is written but we still call it a protocol protocol is nothing but set of rules to be followed. So, there is no FSM in case of SDP there is no final state machine so, in this case you will say it is an application type SDP I can say application oblique PDF also not an issue. So, I can use SIP to submit a PDF to the remote site I can communicate peer to peer file transfer if you want to do you can do this it does permit that it will not avoid. So, you can this typically is required in internet messaging you can actually use SIP for doing messaging sending SMS for example. So, IS, UP and SIP SIP technically is now being used in 3G and higher end system actually. So, there this is what will be used for transporting your SMS or text messages or PDF files. SIP does not bother what is going in the payload for him it is a object means it does not see through the object it does not know what is there it only knows there is an object certain number of characters. So, this application type that is what will be used on the receiver client to figure out what applications are required to understand the content. If you write applications less PDF that client must be maintaining an application list whenever applications less PDF come the content has to be viewed by a client whenever applications less SDP has to come a SDP processing component has to be there in your media client which will understand what is there in the SDP. So, protocol does not bother about what is there in the content it is only transferring from one person to another person and these has to be correct persons after due authentication process opaque object that is the way it is termed as and then of course the most important thing content length. So, some number I think this is basically octets remember all this is always going to be it is not as key or is key this is all UTF-8 encoding which has to be used all characters has to be UTF-8. So, you can even send text in Hindi nobody stops. So, you want you can write your SDP in the language and send it is permitted it is not as key text is UTF-8. So, in fact all these things can be put in UTF-8 nobody stops even URIs can be defining UTF-8. So, you can write your name in Hindi at the rate a Hindi domain name those are now permitted actually under initialization. So, UTF-8 is a standard all across. So, multilingual and then of course important thing there is a blank line we call it carriage return and line there I left this actually was has been taken from STTP after the header there is going to be a carriage return and line feed. So, carriage will be you will do a carriage return you will come back and you will do a line feed there is one line gap which will come and after that whatever characters are there 142 characters from here on word this length 142 characters is what is your STTP text which has to be taken out by the receiver and has to be analyzed. So, this we call the market between header and payload. So, header ends here that is indication. So, there should not be any blank line in between there will all there has to be always a character that is important. So, there is a STTP content not shown. So, this is that 142 characters this what a typically a message will look like. So, now what will happen is as the invite has been sent I am now writing down the numbers which you are asking what does they mean. So, this will say trying. So, 100 is not final invite is a message invite is a request in response to that you can get multiple responses. So, this is more of them actually before the invite is responses final. So, trying as you keep still hold on. So, do not time out you have to keep on sending trying periodically. So, that time out can be reset otherwise it will time out and send another invite. It is to reset the time out clock. So, this is typically designed for the because their time outs actually can happen over a long period and then of course, there is a longer path and everything. So, there is always acknowledgement which also has to be sent back. That is why I said that invite is the only kind of request in response to the response of the invite. Only in this case you will send an act not for any that kind of request. Invite will be forwarded by the proxy goes to this one. This will further send an invite to him. This is again trying this guy's phone is free. That is my assumption here in this case. So, phone will start ringing actually phone starts ringing. You will send 180. So, trying ringing all these are with 1xx series actually specification. So, this ringing once it reaches here it will be sent back further and you can see this is very similar to signaling which is used in conventional telephone similar structure. But with slight variations. Once the guy picks up the phone 200 is willing to communicate. So, still connection has not been set up call is not through 200 because acknowledgement also has to be sent back. So, once you lift your willing to take the call you will be waiting still call is not through. So, that also happens in telephone exchange order a conventional circuit switch systems. But it happens so fast you do not realize that after lifting your handset at the receiver end the signal is going back till the source and it is disconnecting and the voice circuit is being connected because that guy is also getting a tone back a hunting tone or maybe a ringing tone. So, that has to be stopped a voice circuit has to be connected. So, all voice path actually is has to be cleared once it the confirmation happens. Here still there is no voice path as of now. They have only started the moment ok is to happen whatever has been sent in the ok this particular field there are header fields and payload again in this SDP. It has already got a received the SDP which has been received. It is now know what are my capabilities it is sending another SDP. SDP as session description protocol will tell what kind of codec is going to be used what kind of bit rate port number whatever it is. So, this phone at least by this time knows that the common between the common subset of the two SDPs is what communication is going to happen on that those terms is negotiation now. So, this guy ask for a higher bit rate codec but that codec is not available at a lower one. So, it will just simply know the other guy will also have to choose a lower one. There is nothing like your own choice whatever is the minimum of the two you have to choose that. So, it will choose it will start the media service on that it will start accepting the voice call and transmission also is permitted actually. But this will call is not true because this side client is this will not configured itself. So, this will send ok 200 ok this 200 ok also happens in STTP by the way. Actually same status codes have been used what is used in STTP except some of the numbers are different because ringing does not happen in case of STTP. This is only a function in SIP 100 I do not think it is there in STTP because there is no proxy forward actually. So, once this 200 comes then by this time this guy knows that how the call how the response has to come back. Remember in this case a via header was inserted by this proxy in the initial invite which was sent there is only one via header. By the time this guy actually has forwarded the invite. Another via field has been inserted here which says via SIP slash 2.0 slash UDP whatever is this domain name of this entity and then semicolon branch some number random string corresponding to this dialogue. So, in the reverse when it comes it can match actually. When the response is coming back this guy can figure out it is matching with which particular entity because so far in fact even this tag and this can be used. But dialogue is not fully set because this is not known response. So, it is putting its own tag value. So, this is the response for this proxy. Now uniquely identifies the dialogue for the time being. So, that is why in the via field it has been done. Invite and other I mean 100 and 180 will also contains the they will all contain headers and they will also can contain payload. So, I will come to the structure of for example this 200 200 ok message I am going to come for that. So, there is a via field which is going to be added here and this will be something like big box whatever is the DNS for entry for that thing site3.atlanta.com branch. This is the invite when it comes out from this machine previous version of the invite when it started from here. So, another via field is that added here same number which will come z9h whatever it is may be a different distinct than this need not be same. This is function of the machine which is starting the invite. And remember this is stateful proxy currently both of them are stateful proxy. The stateless proxy do not do this here. Similarly, when this guy actually will send it will add another via field here. So, this is also say cp 2.0 it is udp and server10.blogc.com and then of course a branch a random stream sitting in here ok. So, when this guy is going to send the response back any ringing ok. So, this for this particular request all responses in this fashion not for the complete dialogue remember not for the dialogue. So, dialogue there is another field which has to be added by this. For example, this guy wants in later on for this whole dialogue whatever transaction has to happen through me. It has to send something called record root header field in that case. So, kindly there is no record root only the response to this invite will be sent back to this guy. Then this via will be removed. So, for this only this via will be available. So, it will send the response here. That is why this trying 180 everything is taking hop by hop they are coming in the backward direction. If this via would not have been added for example, this via and this via would not have been added. Then what would have been this actually simple thing that ringing thing would have directly come to this guy no intermediary in that case. Which one? Currently everything is multiple of everything is through via because all these three are response to the same invite. This request this invite request is not over with one response. It requires three responses for the to complete the request. There are intermediary responses which are coming I say I have only told a request requires at least one response. It is only at least one response it can have multiple of them that is perfectly alright. So, there are three responses here and this via field is every time added by every proxy and I allowed how many forward 70. So, there can be 70 wires which can be there. It means the request itself will take lot of time and response itself also can take lot of time. Sir, how is this route decided? How is this route decided? This is for example you yourself do not know about where the destination is. Usually you will always forward the request to whichever is a proxy server registered for you. So, in your phone it must be configured or when you buy IP phone you know my service provider is this. So, you will put this proxy server address your login authentication you will do registration there at your register and you will get the proxy server also usually proxy server registered will be co-located thing in the same machine usually. But logically they are separate entities and then you do not bother about how it will be routed. You just send the invite to this. This guy will now look at the SIP URI of the destination. It has to talk to somebody called blocksy.com. So, it will make a DNS query how the mail is for example. You want to send a mail to some x, y, z at the rate blocksy.com. So, your mail only goes to smtp.iitk.ac.in. So, this SMTP server then actually try look at DNS record which corresponds to what we call Mx record we call it mail exchange record. A DNS can contain multiple kind of record. It can simply be I gave a machine address. What is the corresponding IP address? That is one kind of DNS query. I can ask within a domain what is the corresponding mail exchange record Mx record. So, when you want to send a mail to Gmail for example, our machine will then try make a query DNS query to domain of gmail.com. So, Gmail.com DNS is not known to him. So, it will go to root server dot servers actually. They are servers which are listed. It should be known to everybody. In a root servers for DNS are always configured in every machine. And they are periodically updated from the main server. So, these are again maintained by the internet authority. Internet assigned number authority they actually take care of this. INA we call it or INA IETF everything they are part of ISOC internet society. ISOCs are responsible to do this and it works on donation. No government funding nothing. ISOC works purely on donation and voluntary efforts. So, you go to the root. From root you will find out I have to go to gmail.com. So, where is a dot com server? So, you will find out for dot com there is a DNS in dot com all everybody who has got whatever is named dot com will be listed in that server. So, I will go there and gmail.com will be there. I will get a gmail.com's DNS server. In that server then I will make query what is the MX record for your domain. It will give an IP address where I am supposed to now do SMTP connection and do the mail transfer. Same way for Biloxi.com you will ask for what is the corresponding SIP server in your domain. Every domain will have one or two SIP servers. So, one is the main other one is a standby backup server basically. So, once that DNS will tell this is my server this guy will talk to him and it is now purely depending on that DNS is giving the proper information it has not been tampered by anybody. Once you know this you will say you are a MX record for so and so can you give me the security certificate for that. This could be one security mechanism and say I am so and so but this guy will say how do I know that you also you also show me your certificate. Both of them will do the security certificate based authentication for each other. They know each other then it will send an invite to him. This guy actually it is there in his domain only through register or location server it will find out if the guy is there or not there make a connection and then before making connection this can authenticate you are the right person or not. I showed you a certificate show me through that you authenticate this guy can authenticate again using security certificate this thing or it is a challenge response for every transaction you will say give me your user ID and password when you do for example browsing through proxy here what happens. You do not actually give login password in the beginning itself. You just type out your URL once you try then suddenly window pops up from the proxy. Proxy sends a message you are not authenticate give me what is your username and password once username password comes you will enter that your browser actually stores that username password for that session in the memory. Now for every sttp transaction there is two fields which are added in your sttp header. These are known as sttp user and sttp password proxy user and proxy password. So every sttp transaction from that onward when the browser sends will also send these two strings which then the proxy will match and authenticate. So challenge response this is what we call challenge response method. You do not give your login password immediately. You just try without that first there is no match those fields are not there it will respond back or if you give wrong entry then also it will respond back and ask for that credential but unfortunately this goes in sttp header and if you are not using sttps this goes uninterrupted so if you can sniff in between you can actually get a user's password if it is possible so itk it is actually possible lot of people still use sttp and they use proxy so it is technically possible to do the sniffing and get the password telnet also has similar problem in fact we always say do not use telnet because of this but telnet one good thing is it is only in the beginning what itself only the login password goes and that is it but with sttp it is not only in the beginning it goes with every sttp request that is a bad part. So now coming the response structure how it will look like so let me just complete this diagram first and then after this acknowledgement has to go back and this goes directly this never goes through this multiple hops because by this term it already knows where you need to contact this guy so when I will tell what is the structure of ok field you will understand because the contact the way you had a contact here which gives the currently active thing so this contact of this destination will be available with him and this guy knows the contact current contact of this so they can now directly talk to each other this way of field only gives where the signaling information has to come back it does not give where the media has to be connected this is given here direct hearing between the two clients so act is always sent back here and then of course depending on the sttp you can start transmitting your voice there is no act or whatever it is you keep on streaming your voice from here this guy keeps on receiving this can also keep on sending his voice you start receiving you start playing back and that is how the communication will take place so vdp packets will flow between the two endpoints what happens is a reliability mechanism here it is only built for invite so you have done all acknowledgement ok everything this has to send back the act and act will replicate most of the fields again when you invite message you know the IP address through invite but this guy does not know what is the IP address of that guy ok has to come back all the way you know this IP address yeah does not know the contact contact cannot come till this ok comes back here current contact work the machine what is the current machine so remember there is a CIP user client and CIP user server user USC user and US user agent client and user agent server they both are running on every with every client so this is a user agent server which is going to run here user agent client and they can directly do the CIP transaction also but they do not know each other's actual locations it only acknowledges that we have received this ok now our session is active because it takes quite a long time because you can actually have to do multiple hops and this may take a different route all together so you have to first of all do a signaling to a machine in US this guy will do a signal to somebody in Russia then it comes to somewhere else then to somebody in China so but when you actually start sending act or the media you are directly hearing with your friend these signaling entities are not the participating there they need not is a peer to peer connection except in the case where you require media gateways or where you require intermediary proxies media proxy actually for doing tapping you have already sent in the invite and in the return also you are going to get an SDP so these two SDPs the minimal of these two sets is what is going to be accepted by the two the single of these two for example this guy says I want a studio audio ok it has to have 8000 samples per second it comes here this device sends in the SDP it does not have capability of stereo it can only do monophonic it can say monophonic audio and probably 8000 samples is too high for me I cannot do that I will work at lower rate it can do that so this can work at the lower locations so whichever is the lower of the two that will be used agreed by both offer acceptance kind of system what time at what point agreement agreement happened at this point itself yes it already knows the SDP which is coming and whatever is agreed upon step that SDP it is going to send back will that agreed information send back ok and there are certain things which always has to be there the certain codecs have to be there available with every peer client because there might be a possibility whatever it is offering it is not available here then call cannot be set up it will simply refuse in that case if mashing does not happen all media you may not be able to handle Malayakan gave a very nice example we have a braspati sing client it is for live lecture streaming I require chat I require whiteboard I require audio I require video audio are in multiple layering I define that and send it here this poor guy is nothing but a simply a soft phone you are trying to listen to what I am speaking in the lecture over a phone you can only receive audio you cannot receive video so you will say I can only receive audio there is no layering required I cannot handle chat I cannot handle whiteboard that is what I will get so I will only do audio streaming all the way to this guy and all other media will not be sent to the person so but still the person will be able to listen to my lecture some person can say I do not have much bandwidth or maybe what can happen is in between the bandwidth congestion has happened in the network bandwidth is very poor the video should not be sent actually so any one of them also they can modify the current session parameters they agreed for the video part then some of one of them can ask for a video drop then I can do a media drop also but remember it is a peer-to-peer direct connection but as per this thing does not work on this principle it is a peer-to-peer overlay multicasting midway we can modify we call it a re-invite but remember the message here still will say invite there is nothing like re-invite there is only invite but it is a re-invitation and how it will be people will identify as a re-invitation because these two tags and this will still remain the same if they are same I am still talking about the same dialogue it is a re-negotiation there will be no midway in the re-invite in the case of re-invite dialogue must be already existing if there is no nothing like re-invite the keyword still is invite you can say another invite midway in the session for the same dialogue then it is you are re-negotiating the parameters without calling call is still running call is already running if it is accepted you both of them will switch over to the new parameters if it is rejected you will still remain with the older parameters call will not be removed call will not be terminated midway negotiation you are doing you can keep on doing it multiple times till you find out something which is suitable for both of you midway how we do the authentication challenge this protocol does not bother about authentication when you send HTTP you are not sending login password will again send back the information then you have to attach the login password and authentication will happen so now only thing which is left is the reverse direction the ok part and then of course lot of other features which are there in the RFC so we will continue with this discussion I think I have now 4 more classes left and we will devote only to SIP most of the stuff so that I will also learn in that process in more great tip what the SIP is all about