Search This Blog

Tuesday, 19 November 2019

Basic SQLDB Learning

SQL: Structured Query Language

This language is comonnly  used to comunicate with any database like oracle,mysql,postgress...etc Sqlite
Oracle and MySQL is used for Enterprise purpose
Sqlite is opensource.
Sqlite is light weight compare to other DB and it is used in our daily activities like  ( music systems in car).

Basically we can perform Four operations in Database called CRUD Operations.

C - Create,R- Read,U- Update,D- Delete


SQL Syntax fro Create:

CREATE TABLE Contacts2 (First_Name  VARCHAR(30),Second_Name   VARCHAR(30),Mobile    INTEGER(10));

CREATE table Artist (id INTEGER NOt NULL PRIMARY KEY AUTOINCREMENT,name TEXT);   Variable ID as primary Key


Contacts- Table name

firstname and second name,Mobile are columns in table or Schema

Read  from Database:

SELECT First_Name FROM 'Contacts2';
SELECT *  FROM 'Contacts2';
SELECT * FROM 'Contacts2' WHERE First_Name='Sukesh' ;
SELECT * FROM 'Contacts2'  ORDER BY First_Name='*' ;
SELECT * FROM 'Contacts2'  ORDER BY First_Name='Sukesh' ;

Order by will sort  based on given column and display in ascending order

Insert Value to Database :

INSERT INTO Contacts2 (First_Name,Second_Name,Mobile) VALUES ('Sukesh','Yatakar',9637071671),('Manasa','Yatakar',9637071671)

Delete the contact from

we can delete row based on single value  only

DELETE from Contacts2 WHERE First_Name = 'Nandika'

Update in Table with New Values:

Update Contacts2 SET Mobile= '8237378289' where First_Name='Manasa'

Inetgration of database with Python:

If your application needs to support not only the SQLite database but also other databases such as MySQL, PostgreSQL, and Oracle, the PySQLite is a good




Relations:

Primary Key, - Key for for every row, which point to that row in other tables.Ending Point of URL
Logical Key  - which is used to search from outside world()
Foriegn Key-    Starting point of URL



Artist Table:
CREATE table Artist (id INTEGER NOt NULL PRIMARY KEY AUTOINCREMENT,name TEXT);
Insert into Artist (name) VALUES('Led Zepllin')
Insert into Artist (name) VALUES('AC\DC')

Genere Table:
CREATE table Genere (id INTEGER NOt NULL PRIMARY KEY AUTOINCREMENT,name TEXT);
Insert into genere (name) VALUES('Rock')
Insert into genere (name) VALUES('Metal')

Album Table:
CREATE table Album(id INTEGER NOt NULL PRIMARY KEY AUTOINCREMENT UNIQUE,artist_id INTEGER,title TEXT);
Insert into album (title,artist_id) VALUES('who made who',2)     It linked to Artiest 2nd row
Insert into album (title,artist_id) VALUES( 'IV',1)   It is linked to artist 1st row

Track Table:
CREATE table Track(id INTEGER NOt NULL PRIMARY KEY AUTOINCREMENT UNIQUE,title  TEXT,album_id INTEGER,genere_id INTEGER,len INTEGER,rating INTEGER,counnt INTEGER);

Insert into Track(title,rating,len,counnt,album_id,genere_id) VALUES ('about to rock',5,313,0,1,2),('who made who',5,207,0,1,2)



Joing Tables:

Joining Table Album to Artist

SELECT Album.title,Artist.name from Album join Artist ON Album.artist_id=Artist.id

If we dont give "on" clause it will make all combinations and display

Joining Table Track to Genere
SELECT Track.title,Track.rating,Genere.name from Track join Genere on Track.genere_id=Genere.id

Joinig Table Track to Album:
SELECT Track.title,Album.title from Track join Album on Track.album_id=Album.id


Combing all together:
SELECT Track.title,Album.title,Genere.name,Artist.name from Track join Album join Artist join Genere on Track.album_id=Album.id and Track.genere_id=Genere.id and Album.artist_id=Artist.id






Note: When create Id  give this "INTEGER NOT NULL PRIMARY KEY UNIQUE" other wise u get null issue while inserting values.

Many to Many Relations Table:

Create User Table:
 CREATE TABLE User (id  INTEGER NOT NULL PRIMARY KEY UNIQUE,name  TEXT,Email  TEXT)

Create Course Table:
CREATE TABLE Member (id  INTEGER NOT NULL UNIQUE,title  TEXT)

create Member Table:

CREATE TABLE Member (Userid  INTEGER,Courseid  INTEGER,role INTEGER, PRIMARY KEY (Userid,Courseid))



INsert values to User table :

INSERT INTO User (name,email) Values ('Jae','Jae@gmail.org');INSERT INTO User (name,email) Values ('Ed','Ed@gmail.org');INSERT INTO User (name,email) Values ('Sue','Sue@gmail.org')


INsert into Course table:

INSERT INTO Course (title) Values ('python');INSERT INTO Course (title) Values ('SQL');INSERT INTO Course (title) Values ('java')



Insert Values to Members Table:

INsert into Member (userid,courseid,role) Values(1,1,1);INsert into Member (userid,courseid,role) Values(2,1,0);INsert into Member (userid,courseid,role) Values(3,1,0);INsert into Member (userid,courseid,role) Values(1,2,0);INsert into Member (userid,courseid,role) Values(2,2,0);INsert into Member (userid,courseid,role) Values(2,3,1);INsert into Member (userid,courseid,role) Values(3,3,0)

Learn Linux 2

/ - indicates the root of the directory

ls -  to List the files
ls -l  to list in long format
ls -a to list the hidden files
ls -al to list files and dir in detail view
ls -R to list all  subdirectories in directiories

create a file in CLI and add content  ---- cat > filename
display content of file ------ Cat filename
remove a file -----   rm filename

create directry ---------- mkdir  filename
remove dirtry ------------ rmdir filename

move file or rename ------mv file1  file2

sudo  --- allows user to run with root permissions

man or help  ----- give information of command

history ---- help to view the previous commands executed

clear ---- clear the terminal

pr -    command is used  format the file content and print
pr -x    filename


cat - to read a file


Permission:

- indicates the file (-rwx)
d indicates the directory(drwx)


rwx- read,write,execute  for file
Users(Owner,Group,Others) for file

chmod - to give permission to file or directories
chown  - used to chnage owner or group name


Output redirection:

ls -l > txt

redirecting the output to file txt


PIPE:
Helps you to use two or more commands at same time

cat filename | less or Pg or more  ----- display  first page and we need to scroll down using arrow

FIND:
find . name 'filename'
. current directory
to search for file

GREP:

to search for string in file
cat requirements.txt | grep six
six==1.11.0

grep -c   --- display count of matching
grep -n  ---- display  matching line with number
grep  -i    --- display upper and lower case matching
grep -v    ---- display all lines donot macth string


Linux has a lot of filter commands like awk, grep, sed, spell, and wc

Regex:

.   replace any  character
^ start with character macthes
$ end with character macthes
* matches any character o or more
\ matches special chracter
? matches any single chracter

\+ matches  one or more  preceding character
\? matches zero or more preceding chracter

examples:

grep -E a\+t
grep -E a\?t

Range:
examples

echo {0..10}
echo {a..z}
echo test{0..8}



SORT:

sorting content of file alphabetically,numerically,case sensitive

sort   filename
-r    reverse sorting
-n   sort numerically
-f    case sentive

VOLTE IMS Overview

UE:
It is the mobile  terminal authorized to  be used in  and LTE Network.

An IMS Powered UE :

It required two components:-
UICC (Universal Intergrated circuit card):
UE must contain one UICC and UICC may have one or more modules .
              SIM: used by GSM network
  USIM: Used by UMTS or LTE network
CSIM: used by CDMA neytwork
ISIM:  used by IMS network .It contains IMPI(IP Multimedia Private Identity) , IMPU(IP multimedia Public identity) and secret key . IMPI is global identity given by home network. IMPU acts like telephone number or SIP URI.Secret key is used for  user authentication and sip registration.

SIP UA (SIP USerAgent)
 its acts as UAS and UAC



EnodeB:
The E-UTRAN handles the radio communications between the mobile and the evolved packet core( EPC)and just has one component, the evolved base stations, called eNodeB.
Each eBN connects with the EPC by means of the S1 interface used for signalling and it can also be connected to nearby base stations by the X2 interface for packet forwarding during handover.


EPC (Evolved Packet Core):

MME:
mobility management entity (MME) controls the high-level operation of the mobile by means of signalling messages and Home Subscriber Server (HSS).

HSS:
The Home Subscriber Server (HSS) component  is a central database that contains information about all the network operator's subscribers.

SGW(Serving Gateway): 
Acts as a router, and forwards data between the base station and the PDN gateway.

PGW(PDN Gateway):
Packet Data Network  Gateway communicate with outside network using Sgi Interface.Each PDN is identified by APN(Access Point Name).

PCRF(Policy Control and Charging Rules):


The interface between the serving and PDN gateways is known as S5/S8. s5 if two devices in same network s8 if devices in differenet network.
For VolteIMS Prospective two nodes are  important in EPC

IMS Core:
IMS Core handles  session management and media control.
IMS Core has following nodes:-

CSCF: Establishes monitor ,supports and releases multimedia sessions.
PCSCF : it is intial point of contact for any SIP UA,it handles all request from UE.
SCSCF: has knowledge about user and what applications are available for user.SCSCF decides wheter sip messages should go to application server or not.
ICSCF: ICSCF query  with HSS and  assign the SCSCF to the user

HSS:
HSS is a database that maintains user profiles and location information.HSS is also responsible for authentication and authorization.

SLF: Subscriber location Function) assigns HSS to user in home network. to acheive func it keep track of all HSS.

Ansible Basics Learning

Ansible tools:
ansible-tower   its UI based managing ansible playbooks
ansible- playbook  runs ansible playbook ,executing the defined tasks on targeted hosts
ansible -pull   to pull playbooks from repos and execute
ansible-inventory  used to display or dump the configured inventory as Ansible sees it
ansible-doc  it is documentation tool
ansible-galaxy    command to manage Ansible roles in shared repositories
ansible-console  console for executing ahoc commands
ansible-config     to  view ansible configuration
ansible-vault   encryption/decryption utility for Ansible data files




m   module name
all  it search for local host first not found check at deafault under /etc/andible/hosts
--extra-vars   to pass varaible from outside playbook
-i  pass custom   inventory file create inside playbook
-l   pass the group or hostname to be executed from inverntory file or hosts file
-v or -vvv or -vvvv   verbosity to view logs in debugging mode
--private-key   to pass ssh key
-u User name
-a to execute any ycommand on nodes
--check    to perform dryrun before execute
-- help

default host path:      etc/ansible/hosts
default config path:  /etc/ansible/ansible.cfg


--gather facts     gethering information from remote systems before connecting to remote system
- name  to describe the task going to perform
- hosts: host name/group  you want to connect
-connection    types of connection  local,netconf
- tasks:    block to write task to be performed
-loop:  to loop through task below
-vars:   define list  of values in varaible


Modules:

Service  module   - to check status of service on  remote node (name,state,enable)
raw Module:    to  execute  linux command on  remote node ( ls -l )
fail : print message if fails
when :  check error is foudn in previous result and print fail message
redhat subscription module :   to perform redhat subscription on rhel.
uri module -- to call apis










It is opensource automation tool
It is used to automate IT infrastruvcture
It is used to configure Networdk devices and deploy software on remote devices

Advantages:
It is easy to use and deploy
It is agent less
simple syntax written in YAML called Playbooks
It is powerfull and flexible

Ansible terms:

Controller Machine: The machine where Ansible is installed, responsible for running the provisioning on the servers you are managing.
Inventory: An initialization file that contains information about the servers you are managing.
Playbook: The entry point for Ansible provisioning, where the automation is defined through tasks using YAML format.
Task: A block that defines a single procedure to be executed, e.g. Install a package.

Module: A module typically abstracts a system task, like dealing with packages or creating and changing files. Ansible has a multitude of built-in modules, but you can also create custom ones.
Role: A pre-defined way for organizing playbooks and other files in order to facilitate sharing and reusing portions of a provisioning.
Play: A provisioning executed from start to finish is called a play. In simple words, execution of a playbook is called a play.
Facts: Global variables containing information about the system, like network interfaces or operating system.
Handlers: Used to trigger service status changes, like restarting or stopping a service.

OPenstack

OPenstack:
Openstack is software for building  and managing  cloud computing platforms for private and public Cloud. It is Considered as  IaaS.
OPenstack has big community and it is managed by Openstack Foundation.
It is a OPen source  platform.
There  are many ways to install  and deploy openstack  through different distributions like ubuntu,redhat,suse linux

Openstack Version:

OpenStack is developed and released around 6-month cycles.After the initial release, additional stable point releases will be released in each release series
Present release  Series is "Train" ,15 version.
Under Development  "Ussuri" Series

OPenstack Components:

Openstack platform is managed by a web UI dashboard. It comprises of nine Core key components


  • Nova is a computing engine. It is used for deploying and managing large numbers of virtual machines.
  • Neutron provides the networking capability.
  • Horizon is the dashboard of Openstack. It is the only graphical interface (WEB UI).
  • Keystone provides identity services. It is essentially a central list of all the users.
  • Glance provides image services to OpenStack. In this case, "images" refers to images (or virtual copies) of hard disks.
  • Heat allows developers to store the requirements of a cloud application in a file that defines what resources are necessary for that application.
  • Swift is a storage system for objects and files.
  • Cinder is a block storage component. It accesses specific locations on a disk drive.
  • Ceilometer provides telemetry services, which allow the cloud to provide billing services to individual users of the cloud.

Cloud Computing

Cloud Computing  is the on demand availiability of  Computer system resources.

There are three types of  cloud computing service

IaaS   Infrastructure as a Service (Openstack),Typically, IaaS provides hardware, storage, servers and data center space or network components
SaaS  Software as a service 
PaaS Platform as a Service

RobotFramework3





Introduction to Robot Frame Work      


  • It is an Open Source tool. 

  • It is generic test Automation Framework

  • It is basically built on python and import all python libraries

  • It  supports all platforms(like win,linux ,mac..etc)

  • It has detailed Logging and reporting

  • It is basically based on Keyword driven framework and it also Supports Data driven and behavior driven framework.

  • It can also Integrated with test management tools like (Jenkins,HP JAZZ...etc)

  •  It creates Higher level keywords using existing libraries




............***************************............

RobotFramework2


Installation of Robot Frame Work


Pre-requisites:

  • Check first RFW supports the Platform you want install
  • Install Python standard Version on your machine
  • Install PIP tool, which is basically used to download the any python library.

Install Libraries Now:


  • Install Robot framework Library as below
               "pip install robotframework"

  • Install Ride Library as below

              "pip install robotframeworkride"




  • Set the python path on your machine.


.....................*******************************************************..............................

RobotFramework

         RFW Testcase Architecture



  • After installing the ride Library, launch the ride UI from Cmd prmpt/terminal  as "ride.py"





                 Create Folder
                          |
                 Create Suite (Import Libraries/Data Here)
                          |
                 Create Testcase
                          |
                 Write Teststeps      


  • Save file as .robot/.txt  file

  • Execute the Script from command line as below

          "pybot -d pathforlogs File.robot"

  • You can also Execute the Suite/Testcases from Ride UI

......................************************.............

SIP ENTITIES

  SIP ENTITIES:

          
                                              SIP network consists of four types of logical SIP entities. Sip entity  as a client (initiates requests),  and as a server (responds to requests),   or as both. 

Following are the four types of logical SIP entities:

USER AGENT : User Agent (UA) is the endpoint logical entity. User Agents initiate and terminate sessions by exchanging requests and responses. 

User Agent Client (UAC)—    

  •     The client application that initiates SIP requests(Initiates a call).
  •     It lasts only for the duration of that paticular transaction.

User Agent Server (UAS)—      

  •  It generates a response to a  SIP request send by UAC.
  •  It lasts only for the duration of that paticular transaction.
Note: The User Agent initiating a call acts as a UAC when sending the initial SIP request (INVITE) and as a UAS  when it receives a SIP BYE request from the callee.

Some of the devices that can have a UA function in a SIP network are: IP-phones, telephony gateways, call agents, automated answering services.

REGISTRAR SERVER: 
                                      Before endpoints communicate (endpoints are the caller and the callee i.e UA) they should be registered to a SIP entity known as REGISTRAR SERVER. It is a UAS and a logical entity.The endpoint registers to a REGISTRAR Sever and Contact Information of the user specified in the request is updated  at  Location Server.

Location Server is a database of locations of SIP User Agents. 
1)   It is  updated by SIP User Agents by Registration.
2)   It is used by Redirect/Proxy server to obtain information about a callee's possible locations.
3)  DNS query is used to query location service.

Note: In this both To & From address will be same.

REDIRECT SERVER:    Redirect Server is a server that accepts a SIP request and send 3XX Responses with  present location address after quieries with Location sever . Unlike Proxy servers, Redirect Servers do not pass the request on to other servers.

Ex: 302 - Moved Temporarily,301 - Moved Permanently

PROXY SERVER:   
                      A Proxy Server is an intermediary entity that acts as both a server and a client for the purpose of making requests on behalf of other clients.  It also consults database such as DNS and Location Server.

There are two types of poxies: 
Normal Proxy Sever(Sateless):
                      It just forwards the received requests to other end and send responses on behalf of other.It just perform routing logic,send message out.

B2BUA Sever(Statefull):  
                      Proxy interprets, and, if necessary, rewrites a request message before forwarding it. It maintain state during entire transaction.
 Ex: Forward on no reply,Forking.

DNS Server:  It stores address and its corresponding name pairs. If  we send a website name in a request  and it returns exact IP address of it.

SIP Trapezoid:  


                                  Basic SIP Trapezoid
                                         biloxi.com                                              atlanta.com

User A initiates an INVITE request with Request-URI of B(atlanta.com). As invite reaches "biloxi.xom" proxy server it locates the poxy server at "atlanta.com"  possibly by performing a particular type of DNS lookup and find the server that serves UserB. Since proxy is providing "outbound service" it is called Outbound Poxy
           After Invite reaches atlanta.com proxy  server consults database,generically called a location service,that contains the current IP address of UserB.Since proxy is providing "Inbound service" it is called Inbound Poxy

A single proxy can have the logic to act as an 
Outbound/Inbound proxy for a A to B call.

SIP Overview

 SIP Protocol Overview


         
               SIP is signalling protocol used to Initiate,Modify and Tear down the Voice and Video sessions.

             SIP is and application layer protocol (also called Signalling/Text- based protocol). It is designed by IETF. Sip was initially focused on Voice Communication  and later expanded to Video, Instant messaging.....etc. SIP carries media transport through the RTP/ RTCP, SRTP. 

         
SIP MESSAGES

Sip Messages ae divided into two types:

  1. Sip Requests --> sent from client to sever.
  2. Sip Responses -->sent from server to client.

Message Syntax:

        Start line
        Message header
              CRLF- Carriage return line feed.
        Message body(SDP-Session Describestion Protocol ).

Message header:  It provides additional information, regarding requests and responses.

CRLF    : Empty line after header field.

Message body( SDP) : Normally describes the type of session to be established,including a description of media to be exchanged.


Start Line:
    Start line can be request line or status line. Sip Requests start line:
   Syntax: Method Sp Request URISp SIP version
     Ex:  Invite  sip:bob@billoxi.com  sip/2.0

Sip Response start line:
  Syntax:Sip version Sp Response code Sp       Responpharse
 Ex: sip/2.0  200   OK

Message header Syntax:
        
         Via
         To
         From
         Call Id
         C-seq
         Max-forward
         Contact

Message Body Syntax:

          V- Version SDP = 0
          O- Owner  = IPv4
          S- Session name = VOIP
          T- Time= Start and stop time
         M- Media =Audio/ Video
         A- Attributes =Send only/Recv only    
                

  • REQUESTS:   
  1.  Invite: It indicates client is invited to participate in call session.
  2. Ack: It confirms client has received final response to invite request.
  3. Bye: Terminates the call and can be sent by either caller or callee. 
  4. Cancel: Cancels any pending request.
  5. Options: Queries the capabilities of server.
  6. Register: Registers the address listed in to header field with a Sip server.
  7. Prack: Provisional Acknowledgement.
  8. Refer: Asks recipient to issue SIP request.
  9. Notify: Notify the subscriber of a new event.
  10. Subscribe:Subscribes for an event of notification from the notifier.
  11. Info : Sends mid-session information.
  12. Message:Transports instant messages using SIP.
  13. Update: Modifies the state of a session without changing.
  14. Publish: Publish an event to the server.  

  • RESPONSES:

        
       1XX  -  Information Responses
       2XX -   Successful Responses
       3XX  -  Redirection Responses
       4XX -   Client failure Responses
       5XX  -  Server failure Responses
       6XX  -  Global failure Responses

        Examples:
             
       100  -  Trying
       180  -  Ringing
       181  -  Call being forwarded
       183  -  Session in progress
       200  -  Ok
       202  -  Accepted
       301  -  Moved permanently
       302  -  Moved temporarily
       401  -  Unauthorized
       404  -  Not found
       483  -  Too Many Hops
       486  -  Busy here
       407  -  Proxy authentication required
       408  -  Request timeout
       487  -  Request terminated
       491  -  Request pending
       503  -  Service unavailable
             


EXPLANATION OF MESSAGE HEADER Fields:

VIA: It contains the address at which user is expecting to receive response to this  request. 
The Via header field value MUST contain a branch parameter

  • This parameter is used to identify the transaction created by that request.
  • It helps proxies to detect loops.
 The branch parameter value MUST be unique across space and time for all requests sent by the UA. The exceptions to this rule are CANCEL and ACK for non-2xx responses. As discussed below, a CANCEL request will have the same value of the branch parameter as the request it cancels.
* The branch ID inserted by an element always begin with the characters "z9hG4bK". These 7 characters are used as a "Magic cookie"

FROM :It contains display name and SIP URI that indicates the originator of the  request. The From field MUST contain a new "tag" parameter, chosen by the UAC.

TO : It contains the display name and SIP URI towards which request was originally directed. A request outside of a dialog MUST NOT contain a To tag; the tag in the To field of a request identifies the peer of the dialog. Since no dialog is established, no tag is present.

TAG : Tag in 'To' header are of no help since they are not known until response arrive. 
An initial request from a client will contain a From Tag and the subsequent provisional response to it from the server will contain a To Tag.  

  • Tags are used by the UAC to distinguish multiple final responses from different  UAS.

                               
CALL-ID: It contains a globally unique identifier for all requests and responses sent by either UA in a dialog,generated by the combination of random string and IPaddress.Note that when request are retried after certain failure, These retried requests are not considered new requests,and therefore do not need new Call-ID.

* Implementations MAY use the form "loclid@host".
* It provides some protection against session hijacking and reduces.

CALL LEG : The combination of to tag, From tag and call ID is called call leg/peer to  peer  connection.

C- SEQ :It contains an sequence number and method Name. The c-seq is incremented for  each new request.
* It is used to identify and order transactions.

CONTACT :It contains a SIP URI that represents the direct route to contact user.

MAX-FORWARD:It serves to limit the number of hops a request can make on the way to destination. If the Max-Forwards value reaches 0 before the request reaches its destination, it will be rejected with a 483(Too Many Hops) errors response.

CONTENT LENGTH :
It contains an octet(byte) count of the message body.

CALLER ID:It is provided by the From SIP header containing the caller's name and number.

RECORD ROUTE: Record route header is inserted into requests by proxies that want to be in the  path of subsequent request for the same call-id. It is then used by user agent to route subsequent requests.





  Difference between H.323&SIP

                                                                
1. H.323 :It is designed by ITU                        
    SIP     :It is designed by IETF.
                             
2.  H.323 : H.323 is limited to conferencing.It define the basic set of funtionality that all devices                                       must support.
     SIP    :  SIP was initially focused ib voice connection and then expanded to video,instant messaging..etc

3.  H.323 : Has defined a number of features to handle failures of N/W entities
     SIP     :  Has not defined for handling device failure. user agent has to send re-Invite.

 4.  H.323 : Encodes messages in a compact binary format.
      SIP     : Sip messages are encoded in ASCIT text format.

 5.  H.323 :  Media transport RTP/RTCP,SRTP.
       SIP     :  Media transport RTP/RTCP, SRTP.

  6. H.323 :  Addressing H.323 support these aliases:
                     * E.164 dialed digits
                     * Transport address
                     * Email address
                     * Party number
       SIP    :  SIP only understand URI- Style addresses.

  7. H.323 :  Call setup :  Setup Connect  Ack
      SIP      :  Call setup :  Invite 200Ok  Ack

  8.  H.323  :  H.323 fully support video and data conferencing.
       SIP      :  SIP has limited support for video and no support for data conferencing.

   9.  H.323 :  H.323 Support any codec standedized or propretory.
        SIP     :  SIP supports IANA registered codec.

  10.  H.323 : Most H.323 entities use a reliable transport for signalling.
         SIP     : Most SIP entities uses an unreliable transport for signalling.

  11.  H.323 : Routing gatekeepers can detect loops by looking at call identifier and destination address.
         SIP     : The via header facilitates detecting loops.

  12 . H.323 : Minimum ports for VOIP call 3  ( call signalling, RTP, RTCP )
         SIP     : Minimum ports for VOIP call 3  ( SIP, RTP, RTCP )


***************************<><><><><><><>***********************************


REST API

  API  is an application programming interface. It is a set of rules that allow programs to talk to each other. The developer creates the AP...