development:applications:ebonding:works

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
development:applications:ebonding:works [2017/02/01 12:47] – [The eBonding Component Standalone] 1carew1development:applications:ebonding:works [2021/06/25 10:09] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== eBonding - How it Works ======
 +Author : Colm Carew
 +\\ Date : 2017-02-01
 +===== The eBonding Component Standalone =====
 +==== InBound Message ====
  
 +{{ :development:applications:ebonding:screenshot_2017-02-01_12.45.13.png |}}
 +
 +To focus on an InBound Message solely from the perspective of the eBonding component what we see is that our eBonding Queue is bound to the soap exchange via the routing key 'eBonding'. When we receive a message on the eBonding queue the eBonding component consumes it and begins to process the message. During the message processing (possibly more than once) it may contact the Ticketer via creating a callback Queue (Ticketer action callback queue in the diagram) and sending a message to the Ticketer Action Queue. The Ticketer should then process the message from eBonding and fire the response back onto the callback queue (again may happen more than once depending on the action). Once eBonding is finished processing it will reply to the Soap Callback queue titled 'eBonding Callback Queue' in the diagram.
 +
 +==== OutBound Message ====
 +
 +{{ :development:applications:ebonding:screenshot_2017-02-01_12.45.49.png |}}
 +For the outbound message what occurs here is that a Ticketer will publish an event to the Ticket Event Exchange and Tag it with the domain of the event. eBonding is interested in Ticket and Form changes so that is what binds the eBonding Ticket Change queue to the Ticket Event Change Exchange. When eBonding consumes a message from the eBonding Ticket Change Queue it checks to see if it has an eBonded Ticket in it's database relating to the incoming message. If it does not have an eBonded ticket it will forget about the message. It it is interested it will process the message and look for the appropriate message to generate based on the customer associated with the Ticket.
 +
 +eBonding then publishes the new message (i.e. what we want to send out) onto the Outbound Exchange tagged with the communication type of the Customer, for now just 'soap'.
 +===== The Overall Picture =====
 +==== InboundMessage ====
 +
 +{{ :development:applications:ebonding:receiving_message.png |}}
 +
 +So as a whole the Interconnection of the Soap, eBonding and Ticketer for incoming messages works as follows :
 +
 +  - Soap Receives a Message and keeps the HTTP Session open - pulls the customer(Carrier) and validates the message - returns a default fail message when failures/timeouts occur
 +  - The message makes it to eBonding - eBonding Pulls all relevant data from the incoming message and contacts the Ticketer to see if an open ticket exists
 +  - The Ticketer consumes a message, pulls the action from the header and uses it to process the JSON payload
 +  - The Ticketer returns a JSON string on any information it has on the Ticket - if it exists
 +  - eBonding receives the Ticket information and based on the Incoming Message i.e. if its create, modify, cancel etc. will either generate a response or go to the Ticketer again to create/modify the Ticketer
 +  - eBonding generates the Response Message and responds to the callback queue created by Soap
 +  - Soap pulls the message off the callback queue, generates a Soap Message from the message pulled off the callback queue and responds to the HTTP Session with that message
 +
 +This is a synchronous flow in that Soap waits for a response and the connection is left open - callback queues are used to achieve synchronous messaging.
 +
 +==== OutBoundMessage ====
 +
 +{{ :development:applications:ebonding:sending_message.png |}}
 +
 +The Outbound message process is Async in that no thread waits for a response message, once it fires the message it no longer cares.
 +
 +The Outbound message sending works as follows : 
 +
 +  - The Ticketer has auitable property set on a domain - in this case Ticket and FormValueChange
 +  - The ticket/form is updated in the Ticketer
 +  - The Audit Provider Picks up on the update and publishes a message to the Ticket Event Change exchange of what has changed and tags it with the domain that has changed.
 +  - The eBonding queue is bound to some of the tags and picks up on the outgoing message
 +  - eBonding determines if the update belongs to an eBonded ticket in it's own database and if it does it retrieves the outgoing message template and generates the appropriate outgoing message
 +  - eBonding publishes the message onto the eBonding Outbound Exchange and tags it with the outgoing tag of the customer (for now lets say soap)
 +  - The Soap Outbound Queue binds to the eBoning Outbound with the binding key 'soap' and receives the message.
 +  - Soap pulls the customer from the header of the RabbitMQ message and then posts the payload of the message to the endpoint associated with the Customer in the Soap Database
 +  - Soap will then get a response from where it posted the message - it may also timeout(configurable) or throw an exception
 +
 +===== Example Message From Soap to eBonding InBound =====
 +==== Properties and Headers ====
 +<code>
 +reply_to: amq.gen-ayYK9t52mP-mprYEXANfpg
 +correlation_id: ad9a3b2a-099e-45a8-85d4-21928b23f255
 +headers:
 +customer: ATT
 +auth: true
 +</code>
 +==== Payload ====
 +<code>
 +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Header/><SOAP-ENV:Body><m:processSync xmlns:m="http://eBonding/taservice/send">&lt;?xml version="1.0"?&gt;
 +&lt;tML-TA:RequestTroubleReportCreationRequest xsi:schemaLocation="http://www.ansi.org/tML/TA/tML-TAtML-TA.xsd" xmlns="http://www.ansi.org/tML/TA/tML-TA" xmlns:tML-TABase="http://www.ansi.org/tML/TA/tML-TABase" xmlns:tML-TA="http://www.ansi.org/tML/TA/tML-TA" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
 +  &lt;tML-TA:RequestId&gt;1234!&lt;/tML-TA:RequestId&gt;
 +  &lt;tML-TA:Customer&gt;
 +    &lt;tML-TABase:UserId&gt;EXT-M&lt;/tML-TABase:UserId&gt;
 +    &lt;tML-TABase:ServiceProfile&gt;Service Profile&lt;/tML-TABase:ServiceProfile&gt;
 +  &lt;/tML-TA:Customer&gt;
 +  &lt;tML-TA:NameBindingId&gt;
 +    &lt;tML-TABase:NameBindingId&gt;1.2.840.10015.0.6.24&lt;/tML-TABase:NameBindingId&gt;
 +  &lt;/tML-TA:NameBindingId&gt;
 +  &lt;tML-TA:ManagedObjectInstance&gt;
 +    &lt;tML-TABase:DistinguishedName&gt;
 +      &lt;tML-TABase:RDNSequenceItem&gt;
 +        &lt;tML-TABase:Type&gt;networkID&lt;/tML-TABase:Type&gt;
 +        &lt;tML-TABase:Assertion&gt;EXT&lt;/tML-TABase:Assertion&gt;
 +      &lt;/tML-TABase:RDNSequenceItem&gt;
 +      &lt;tML-TABase:RDNSequenceItem&gt;
 +        &lt;tML-TABase:Type&gt;accountName&lt;/tML-TABase:Type&gt;
 +        &lt;tML-TABase:Assertion&gt;EXT-M&lt;/tML-TABase:Assertion&gt;
 +      &lt;/tML-TABase:RDNSequenceItem&gt;
 +      &lt;tML-TABase:RDNSequenceItem&gt;
 +        &lt;tML-TABase:Type&gt;serviceID&lt;/tML-TABase:Type&gt;
 +        &lt;tML-TABase:Assertion&gt;(NW-CA-SANFRNMC-00616) - (SNFJCAFH) - (ATT) - (01)&lt;/tML-TABase:Assertion&gt;
 +      &lt;/tML-TABase:RDNSequenceItem&gt;
 +    &lt;/tML-TABase:DistinguishedName&gt;
 +  &lt;/tML-TA:ManagedObjectInstance&gt;
 +  &lt;tML-TA:TroubleType&gt;
 +    &lt;tML-TABase:Number&gt;623&lt;/tML-TABase:Number&gt;
 +  &lt;/tML-TA:TroubleType&gt;
 +  &lt;tML-TA:AdditionalTroubleInfoList&gt;
 +    &lt;tML-TABase:AdditionalTroubleInfoItem&gt;Telco Short Description : Circuit Fault Detected Please Test and Advise&lt;/tML-TABase:AdditionalTroubleInfoItem&gt;
 +  &lt;/tML-TA:AdditionalTroubleInfoList&gt;
 +  &lt;tML-TA:AdditionalCreateInfo&gt;
 +    &lt;tML-TABase:TroubleReportFormatId&gt;93&lt;/tML-TABase:TroubleReportFormatId&gt;
 +    &lt;tML-TABase:ALocationAccessAddress&gt;
 +      &lt;tML-TABase:PremisesName&gt;OCMP (GLICKMAN RELO)&lt;/tML-TABase:PremisesName&gt;
 +      &lt;tML-TABase:PremisesAddress&gt;
 +        &lt;tML-TABase:CivicAddress&gt;2050 EAST 96TH STREET&lt;/tML-TABase:CivicAddress&gt;
 +        &lt;tML-TABase:City&gt;CLEVELAND&lt;/tML-TABase:City&gt;
 +        &lt;tML-TABase:State&gt;OH&lt;/tML-TABase:State&gt;
 +        &lt;tML-TABase:Zip&gt;44195&lt;/tML-TABase:Zip&gt;
 +      &lt;/tML-TABase:PremisesAddress&gt;
 +    &lt;/tML-TABase:ALocationAccessAddress&gt;
 +    &lt;tML-TABase:ALocationAccessHours&gt;
 +      &lt;tML-TABase:LocationAccessHoursItem&gt;
 +        &lt;tML-TABase:DaysOfWeek&gt;
 +          &lt;tML-TABase:Sunday&gt;true&lt;/tML-TABase:Sunday&gt;
 +          &lt;tML-TABase:Monday&gt;false&lt;/tML-TABase:Monday&gt;
 +          &lt;tML-TABase:Tuesday&gt;false&lt;/tML-TABase:Tuesday&gt;
 +          &lt;tML-TABase:Wednesday&gt;false&lt;/tML-TABase:Wednesday&gt;
 +          &lt;tML-TABase:Thursday&gt;false&lt;/tML-TABase:Thursday&gt;
 +          &lt;tML-TABase:Friday&gt;false&lt;/tML-TABase:Friday&gt;
 +          &lt;tML-TABase:Saturday&gt;false&lt;/tML-TABase:Saturday&gt;
 +        &lt;/tML-TABase:DaysOfWeek&gt;
 +        &lt;tML-TABase:IntervalsOfDay&gt;
 +          &lt;tML-TABase:IntervalsOfDayItem&gt;
 +            &lt;tML-TABase:IntervalStart&gt;00:00:00&lt;/tML-TABase:IntervalStart&gt;
 +            &lt;tML-TABase:IntervalEnd&gt;23:59:00&lt;/tML-TABase:IntervalEnd&gt;
 +          &lt;/tML-TABase:IntervalsOfDayItem&gt;
 +        &lt;/tML-TABase:IntervalsOfDay&gt;
 +      &lt;/tML-TABase:LocationAccessHoursItem&gt;
 +      &lt;tML-TABase:LocationAccessHoursItem&gt;
 +        &lt;tML-TABase:DaysOfWeek&gt;
 +          &lt;tML-TABase:Sunday&gt;false&lt;/tML-TABase:Sunday&gt;
 +          &lt;tML-TABase:Monday&gt;true&lt;/tML-TABase:Monday&gt;
 +          &lt;tML-TABase:Tuesday&gt;false&lt;/tML-TABase:Tuesday&gt;
 +          &lt;tML-TABase:Wednesday&gt;false&lt;/tML-TABase:Wednesday&gt;
 +          &lt;tML-TABase:Thursday&gt;false&lt;/tML-TABase:Thursday&gt;
 +          &lt;tML-TABase:Friday&gt;false&lt;/tML-TABase:Friday&gt;
 +          &lt;tML-TABase:Saturday&gt;false&lt;/tML-TABase:Saturday&gt;
 +        &lt;/tML-TABase:DaysOfWeek&gt;
 +        &lt;tML-TABase:IntervalsOfDay&gt;
 +          &lt;tML-TABase:IntervalsOfDayItem&gt;
 +            &lt;tML-TABase:IntervalStart&gt;00:00:00&lt;/tML-TABase:IntervalStart&gt;
 +            &lt;tML-TABase:IntervalEnd&gt;23:59:00&lt;/tML-TABase:IntervalEnd&gt;
 +          &lt;/tML-TABase:IntervalsOfDayItem&gt;
 +        &lt;/tML-TABase:IntervalsOfDay&gt;
 +      &lt;/tML-TABase:LocationAccessHoursItem&gt;
 +      &lt;tML-TABase:LocationAccessHoursItem&gt;
 +        &lt;tML-TABase:DaysOfWeek&gt;
 +          &lt;tML-TABase:Sunday&gt;false&lt;/tML-TABase:Sunday&gt;
 +          &lt;tML-TABase:Monday&gt;false&lt;/tML-TABase:Monday&gt;
 +          &lt;tML-TABase:Tuesday&gt;true&lt;/tML-TABase:Tuesday&gt;
 +          &lt;tML-TABase:Wednesday&gt;false&lt;/tML-TABase:Wednesday&gt;
 +          &lt;tML-TABase:Thursday&gt;false&lt;/tML-TABase:Thursday&gt;
 +          &lt;tML-TABase:Friday&gt;false&lt;/tML-TABase:Friday&gt;
 +          &lt;tML-TABase:Saturday&gt;false&lt;/tML-TABase:Saturday&gt;
 +        &lt;/tML-TABase:DaysOfWeek&gt;
 +        &lt;tML-TABase:IntervalsOfDay&gt;
 +          &lt;tML-TABase:IntervalsOfDayItem&gt;
 +            &lt;tML-TABase:IntervalStart&gt;00:00:00&lt;/tML-TABase:IntervalStart&gt;
 +            &lt;tML-TABase:IntervalEnd&gt;23:59:00&lt;/tML-TABase:IntervalEnd&gt;
 +          &lt;/tML-TABase:IntervalsOfDayItem&gt;
 +        &lt;/tML-TABase:IntervalsOfDay&gt;
 +      &lt;/tML-TABase:LocationAccessHoursItem&gt;
 +      &lt;tML-TABase:LocationAccessHoursItem&gt;
 +        &lt;tML-TABase:DaysOfWeek&gt;
 +          &lt;tML-TABase:Sunday&gt;false&lt;/tML-TABase:Sunday&gt;
 +          &lt;tML-TABase:Monday&gt;false&lt;/tML-TABase:Monday&gt;
 +          &lt;tML-TABase:Tuesday&gt;false&lt;/tML-TABase:Tuesday&gt;
 +          &lt;tML-TABase:Wednesday&gt;true&lt;/tML-TABase:Wednesday&gt;
 +          &lt;tML-TABase:Thursday&gt;false&lt;/tML-TABase:Thursday&gt;
 +          &lt;tML-TABase:Friday&gt;false&lt;/tML-TABase:Friday&gt;
 +          &lt;tML-TABase:Saturday&gt;false&lt;/tML-TABase:Saturday&gt;
 +        &lt;/tML-TABase:DaysOfWeek&gt;
 +        &lt;tML-TABase:IntervalsOfDay&gt;
 +          &lt;tML-TABase:IntervalsOfDayItem&gt;
 +            &lt;tML-TABase:IntervalStart&gt;00:00:00&lt;/tML-TABase:IntervalStart&gt;
 +            &lt;tML-TABase:IntervalEnd&gt;23:59:00&lt;/tML-TABase:IntervalEnd&gt;
 +          &lt;/tML-TABase:IntervalsOfDayItem&gt;
 +        &lt;/tML-TABase:IntervalsOfDay&gt;
 +      &lt;/tML-TABase:LocationAccessHoursItem&gt;
 +      &lt;tML-TABase:LocationAccessHoursItem&gt;
 +        &lt;tML-TABase:DaysOfWeek&gt;
 +          &lt;tML-TABase:Sunday&gt;true&lt;/tML-TABase:Sunday&gt;
 +          &lt;tML-TABase:Monday&gt;false&lt;/tML-TABase:Monday&gt;
 +          &lt;tML-TABase:Tuesday&gt;false&lt;/tML-TABase:Tuesday&gt;
 +          &lt;tML-TABase:Wednesday&gt;false&lt;/tML-TABase:Wednesday&gt;
 +          &lt;tML-TABase:Thursday&gt;true&lt;/tML-TABase:Thursday&gt;
 +          &lt;tML-TABase:Friday&gt;false&lt;/tML-TABase:Friday&gt;
 +          &lt;tML-TABase:Saturday&gt;false&lt;/tML-TABase:Saturday&gt;
 +        &lt;/tML-TABase:DaysOfWeek&gt;
 +        &lt;tML-TABase:IntervalsOfDay&gt;
 +          &lt;tML-TABase:IntervalsOfDayItem&gt;
 +            &lt;tML-TABase:IntervalStart&gt;00:00:00&lt;/tML-TABase:IntervalStart&gt;
 +            &lt;tML-TABase:IntervalEnd&gt;23:59:00&lt;/tML-TABase:IntervalEnd&gt;
 +          &lt;/tML-TABase:IntervalsOfDayItem&gt;
 +        &lt;/tML-TABase:IntervalsOfDay&gt;
 +      &lt;/tML-TABase:LocationAccessHoursItem&gt;
 +      &lt;tML-TABase:LocationAccessHoursItem&gt;
 +        &lt;tML-TABase:DaysOfWeek&gt;
 +          &lt;tML-TABase:Sunday&gt;false&lt;/tML-TABase:Sunday&gt;
 +          &lt;tML-TABase:Monday&gt;false&lt;/tML-TABase:Monday&gt;
 +          &lt;tML-TABase:Tuesday&gt;false&lt;/tML-TABase:Tuesday&gt;
 +          &lt;tML-TABase:Wednesday&gt;false&lt;/tML-TABase:Wednesday&gt;
 +          &lt;tML-TABase:Thursday&gt;false&lt;/tML-TABase:Thursday&gt;
 +          &lt;tML-TABase:Friday&gt;true&lt;/tML-TABase:Friday&gt;
 +          &lt;tML-TABase:Saturday&gt;false&lt;/tML-TABase:Saturday&gt;
 +        &lt;/tML-TABase:DaysOfWeek&gt;
 +        &lt;tML-TABase:IntervalsOfDay&gt;
 +          &lt;tML-TABase:IntervalsOfDayItem&gt;
 +            &lt;tML-TABase:IntervalStart&gt;00:00:00&lt;/tML-TABase:IntervalStart&gt;
 +            &lt;tML-TABase:IntervalEnd&gt;23:59:00&lt;/tML-TABase:IntervalEnd&gt;
 +          &lt;/tML-TABase:IntervalsOfDayItem&gt;
 +        &lt;/tML-TABase:IntervalsOfDay&gt;
 +      &lt;/tML-TABase:LocationAccessHoursItem&gt;
 +      &lt;tML-TABase:LocationAccessHoursItem&gt;
 +        &lt;tML-TABase:DaysOfWeek&gt;
 +          &lt;tML-TABase:Sunday&gt;false&lt;/tML-TABase:Sunday&gt;
 +          &lt;tML-TABase:Monday&gt;false&lt;/tML-TABase:Monday&gt;
 +          &lt;tML-TABase:Tuesday&gt;false&lt;/tML-TABase:Tuesday&gt;
 +          &lt;tML-TABase:Wednesday&gt;false&lt;/tML-TABase:Wednesday&gt;
 +          &lt;tML-TABase:Thursday&gt;false&lt;/tML-TABase:Thursday&gt;
 +          &lt;tML-TABase:Friday&gt;false&lt;/tML-TABase:Friday&gt;
 +          &lt;tML-TABase:Saturday&gt;true&lt;/tML-TABase:Saturday&gt;
 +        &lt;/tML-TABase:DaysOfWeek&gt;
 +        &lt;tML-TABase:IntervalsOfDay&gt;
 +          &lt;tML-TABase:IntervalsOfDayItem&gt;
 +            &lt;tML-TABase:IntervalStart&gt;00:00:00&lt;/tML-TABase:IntervalStart&gt;
 +            &lt;tML-TABase:IntervalEnd&gt;23:59:00&lt;/tML-TABase:IntervalEnd&gt;
 +          &lt;/tML-TABase:IntervalsOfDayItem&gt;
 +        &lt;/tML-TABase:IntervalsOfDay&gt;
 +      &lt;/tML-TABase:LocationAccessHoursItem&gt;
 +    &lt;/tML-TABase:ALocationAccessHours&gt;
 +    &lt;tML-TABase:ALocationAccessPerson&gt;
 +      &lt;tML-TABase:Name&gt;Mobility ER&lt;/tML-TABase:Name&gt;
 +      &lt;tML-TABase:Phone&gt;8006382822x32&lt;/tML-TABase:Phone&gt;
 +    &lt;/tML-TABase:ALocationAccessPerson&gt;
 +    &lt;tML-TABase:AuthorizationList&gt;
 +      &lt;tML-TABase:AuthorizationItem&gt;
 +        &lt;tML-TABase:State&gt;2&lt;/tML-TABase:State&gt;
 +        &lt;tML-TABase:Type&gt;
 +          &lt;tML-TABase:AfterHoursRepair&gt;false&lt;/tML-TABase:AfterHoursRepair&gt;
 +          &lt;tML-TABase:Standby&gt;false&lt;/tML-TABase:Standby&gt;
 +          &lt;tML-TABase:AfterHoursStandby&gt;false&lt;/tML-TABase:AfterHoursStandby&gt;
 +          &lt;tML-TABase:Test&gt;false&lt;/tML-TABase:Test&gt;
 +          &lt;tML-TABase:ManagerInitiatedTest&gt;false&lt;/tML-TABase:ManagerInitiatedTest&gt;
 +          &lt;tML-TABase:Dispatch&gt;true&lt;/tML-TABase:Dispatch&gt;
 +          &lt;tML-TABase:NoAccess&gt;false&lt;/tML-TABase:NoAccess&gt;
 +          &lt;tML-TABase:DelayedMaintenance&gt;false&lt;/tML-TABase:DelayedMaintenance&gt;
 +          &lt;tML-TABase:Release&gt;false&lt;/tML-TABase:Release&gt;
 +          &lt;tML-TABase:DeregulatedWork&gt;false&lt;/tML-TABase:DeregulatedWork&gt;
 +        &lt;/tML-TABase:Type&gt;
 +        &lt;tML-TABase:AuthTime&gt;2016-12-12T16:11:12Z&lt;/tML-TABase:AuthTime&gt;
 +        &lt;tML-TABase:AuthPerson&gt;
 +          &lt;tML-TABase:Name&gt;ns2691&lt;/tML-TABase:Name&gt;
 +        &lt;/tML-TABase:AuthPerson&gt;
 +      &lt;/tML-TABase:AuthorizationItem&gt;
 +    &lt;/tML-TABase:AuthorizationList&gt;
 +    &lt;tML-TABase:CustomerTroubleTickNum&gt;TT200030652886&lt;/tML-TABase:CustomerTroubleTickNum&gt;
 +    &lt;tML-TABase:CustomerWorkCenter&gt;Mobility ER&lt;/tML-TABase:CustomerWorkCenter&gt;
 +    &lt;tML-TABase:ManagedObjectAccessHours&gt;
 +      &lt;tML-TABase:ManagedObjectAccessHoursItem&gt;
 +        &lt;tML-TABase:DaysOfWeek&gt;
 +          &lt;tML-TABase:Sunday&gt;true&lt;/tML-TABase:Sunday&gt;
 +          &lt;tML-TABase:Monday&gt;false&lt;/tML-TABase:Monday&gt;
 +          &lt;tML-TABase:Tuesday&gt;false&lt;/tML-TABase:Tuesday&gt;
 +          &lt;tML-TABase:Wednesday&gt;false&lt;/tML-TABase:Wednesday&gt;
 +          &lt;tML-TABase:Thursday&gt;false&lt;/tML-TABase:Thursday&gt;
 +          &lt;tML-TABase:Friday&gt;false&lt;/tML-TABase:Friday&gt;
 +          &lt;tML-TABase:Saturday&gt;false&lt;/tML-TABase:Saturday&gt;
 +        &lt;/tML-TABase:DaysOfWeek&gt;
 +        &lt;tML-TABase:IntervalsOfDay&gt;
 +          &lt;tML-TABase:IntervalsOfDayItem&gt;
 +            &lt;tML-TABase:IntervalStart&gt;00:00:00&lt;/tML-TABase:IntervalStart&gt;
 +            &lt;tML-TABase:IntervalEnd&gt;23:59:00&lt;/tML-TABase:IntervalEnd&gt;
 +          &lt;/tML-TABase:IntervalsOfDayItem&gt;
 +        &lt;/tML-TABase:IntervalsOfDay&gt;
 +      &lt;/tML-TABase:ManagedObjectAccessHoursItem&gt;
 +      &lt;tML-TABase:ManagedObjectAccessHoursItem&gt;
 +        &lt;tML-TABase:DaysOfWeek&gt;
 +          &lt;tML-TABase:Sunday&gt;false&lt;/tML-TABase:Sunday&gt;
 +          &lt;tML-TABase:Monday&gt;true&lt;/tML-TABase:Monday&gt;
 +          &lt;tML-TABase:Tuesday&gt;false&lt;/tML-TABase:Tuesday&gt;
 +          &lt;tML-TABase:Wednesday&gt;false&lt;/tML-TABase:Wednesday&gt;
 +          &lt;tML-TABase:Thursday&gt;false&lt;/tML-TABase:Thursday&gt;
 +          &lt;tML-TABase:Friday&gt;false&lt;/tML-TABase:Friday&gt;
 +          &lt;tML-TABase:Saturday&gt;false&lt;/tML-TABase:Saturday&gt;
 +        &lt;/tML-TABase:DaysOfWeek&gt;
 +        &lt;tML-TABase:IntervalsOfDay&gt;
 +          &lt;tML-TABase:IntervalsOfDayItem&gt;
 +            &lt;tML-TABase:IntervalStart&gt;00:00:00&lt;/tML-TABase:IntervalStart&gt;
 +            &lt;tML-TABase:IntervalEnd&gt;23:59:00&lt;/tML-TABase:IntervalEnd&gt;
 +          &lt;/tML-TABase:IntervalsOfDayItem&gt;
 +        &lt;/tML-TABase:IntervalsOfDay&gt;
 +      &lt;/tML-TABase:ManagedObjectAccessHoursItem&gt;
 +      &lt;tML-TABase:ManagedObjectAccessHoursItem&gt;
 +        &lt;tML-TABase:DaysOfWeek&gt;
 +          &lt;tML-TABase:Sunday&gt;false&lt;/tML-TABase:Sunday&gt;
 +          &lt;tML-TABase:Monday&gt;false&lt;/tML-TABase:Monday&gt;
 +          &lt;tML-TABase:Tuesday&gt;true&lt;/tML-TABase:Tuesday&gt;
 +          &lt;tML-TABase:Wednesday&gt;false&lt;/tML-TABase:Wednesday&gt;
 +          &lt;tML-TABase:Thursday&gt;false&lt;/tML-TABase:Thursday&gt;
 +          &lt;tML-TABase:Friday&gt;false&lt;/tML-TABase:Friday&gt;
 +          &lt;tML-TABase:Saturday&gt;false&lt;/tML-TABase:Saturday&gt;
 +        &lt;/tML-TABase:DaysOfWeek&gt;
 +        &lt;tML-TABase:IntervalsOfDay&gt;
 +          &lt;tML-TABase:IntervalsOfDayItem&gt;
 +            &lt;tML-TABase:IntervalStart&gt;00:00:00&lt;/tML-TABase:IntervalStart&gt;
 +            &lt;tML-TABase:IntervalEnd&gt;23:59:00&lt;/tML-TABase:IntervalEnd&gt;
 +          &lt;/tML-TABase:IntervalsOfDayItem&gt;
 +        &lt;/tML-TABase:IntervalsOfDay&gt;
 +      &lt;/tML-TABase:ManagedObjectAccessHoursItem&gt;
 +      &lt;tML-TABase:ManagedObjectAccessHoursItem&gt;
 +        &lt;tML-TABase:DaysOfWeek&gt;
 +          &lt;tML-TABase:Sunday&gt;false&lt;/tML-TABase:Sunday&gt;
 +          &lt;tML-TABase:Monday&gt;false&lt;/tML-TABase:Monday&gt;
 +          &lt;tML-TABase:Tuesday&gt;false&lt;/tML-TABase:Tuesday&gt;
 +          &lt;tML-TABase:Wednesday&gt;true&lt;/tML-TABase:Wednesday&gt;
 +          &lt;tML-TABase:Thursday&gt;false&lt;/tML-TABase:Thursday&gt;
 +          &lt;tML-TABase:Friday&gt;false&lt;/tML-TABase:Friday&gt;
 +          &lt;tML-TABase:Saturday&gt;false&lt;/tML-TABase:Saturday&gt;
 +        &lt;/tML-TABase:DaysOfWeek&gt;
 +        &lt;tML-TABase:IntervalsOfDay&gt;
 +          &lt;tML-TABase:IntervalsOfDayItem&gt;
 +            &lt;tML-TABase:IntervalStart&gt;00:00:00&lt;/tML-TABase:IntervalStart&gt;
 +            &lt;tML-TABase:IntervalEnd&gt;23:59:00&lt;/tML-TABase:IntervalEnd&gt;
 +          &lt;/tML-TABase:IntervalsOfDayItem&gt;
 +        &lt;/tML-TABase:IntervalsOfDay&gt;
 +      &lt;/tML-TABase:ManagedObjectAccessHoursItem&gt;
 +      &lt;tML-TABase:ManagedObjectAccessHoursItem&gt;
 +        &lt;tML-TABase:DaysOfWeek&gt;
 +          &lt;tML-TABase:Sunday&gt;false&lt;/tML-TABase:Sunday&gt;
 +          &lt;tML-TABase:Monday&gt;false&lt;/tML-TABase:Monday&gt;
 +          &lt;tML-TABase:Tuesday&gt;false&lt;/tML-TABase:Tuesday&gt;
 +          &lt;tML-TABase:Wednesday&gt;false&lt;/tML-TABase:Wednesday&gt;
 +          &lt;tML-TABase:Thursday&gt;true&lt;/tML-TABase:Thursday&gt;
 +          &lt;tML-TABase:Friday&gt;false&lt;/tML-TABase:Friday&gt;
 +          &lt;tML-TABase:Saturday&gt;false&lt;/tML-TABase:Saturday&gt;
 +        &lt;/tML-TABase:DaysOfWeek&gt;
 +        &lt;tML-TABase:IntervalsOfDay&gt;
 +          &lt;tML-TABase:IntervalsOfDayItem&gt;
 +            &lt;tML-TABase:IntervalStart&gt;00:00:00&lt;/tML-TABase:IntervalStart&gt;
 +            &lt;tML-TABase:IntervalEnd&gt;23:59:00&lt;/tML-TABase:IntervalEnd&gt;
 +          &lt;/tML-TABase:IntervalsOfDayItem&gt;
 +        &lt;/tML-TABase:IntervalsOfDay&gt;
 +      &lt;/tML-TABase:ManagedObjectAccessHoursItem&gt;
 +      &lt;tML-TABase:ManagedObjectAccessHoursItem&gt;
 +        &lt;tML-TABase:DaysOfWeek&gt;
 +          &lt;tML-TABase:Sunday&gt;false&lt;/tML-TABase:Sunday&gt;
 +          &lt;tML-TABase:Monday&gt;false&lt;/tML-TABase:Monday&gt;
 +          &lt;tML-TABase:Tuesday&gt;false&lt;/tML-TABase:Tuesday&gt;
 +          &lt;tML-TABase:Wednesday&gt;false&lt;/tML-TABase:Wednesday&gt;
 +          &lt;tML-TABase:Thursday&gt;false&lt;/tML-TABase:Thursday&gt;
 +          &lt;tML-TABase:Friday&gt;true&lt;/tML-TABase:Friday&gt;
 +          &lt;tML-TABase:Saturday&gt;false&lt;/tML-TABase:Saturday&gt;
 +        &lt;/tML-TABase:DaysOfWeek&gt;
 +        &lt;tML-TABase:IntervalsOfDay&gt;
 +          &lt;tML-TABase:IntervalsOfDayItem&gt;
 +            &lt;tML-TABase:IntervalStart&gt;00:00:00&lt;/tML-TABase:IntervalStart&gt;
 +            &lt;tML-TABase:IntervalEnd&gt;23:59:00&lt;/tML-TABase:IntervalEnd&gt;
 +          &lt;/tML-TABase:IntervalsOfDayItem&gt;
 +        &lt;/tML-TABase:IntervalsOfDay&gt;
 +      &lt;/tML-TABase:ManagedObjectAccessHoursItem&gt;
 +      &lt;tML-TABase:ManagedObjectAccessHoursItem&gt;
 +        &lt;tML-TABase:DaysOfWeek&gt;
 +          &lt;tML-TABase:Sunday&gt;false&lt;/tML-TABase:Sunday&gt;
 +          &lt;tML-TABase:Monday&gt;false&lt;/tML-TABase:Monday&gt;
 +          &lt;tML-TABase:Tuesday&gt;false&lt;/tML-TABase:Tuesday&gt;
 +          &lt;tML-TABase:Wednesday&gt;false&lt;/tML-TABase:Wednesday&gt;
 +          &lt;tML-TABase:Thursday&gt;false&lt;/tML-TABase:Thursday&gt;
 +          &lt;tML-TABase:Friday&gt;false&lt;/tML-TABase:Friday&gt;
 +          &lt;tML-TABase:Saturday&gt;true&lt;/tML-TABase:Saturday&gt;
 +        &lt;/tML-TABase:DaysOfWeek&gt;
 +        &lt;tML-TABase:IntervalsOfDay&gt;
 +          &lt;tML-TABase:IntervalsOfDayItem&gt;
 +            &lt;tML-TABase:IntervalStart&gt;00:00:00&lt;/tML-TABase:IntervalStart&gt;
 +            &lt;tML-TABase:IntervalEnd&gt;23:59:00&lt;/tML-TABase:IntervalEnd&gt;
 +          &lt;/tML-TABase:IntervalsOfDayItem&gt;
 +        &lt;/tML-TABase:IntervalsOfDay&gt;
 +      &lt;/tML-TABase:ManagedObjectAccessHoursItem&gt;
 +    &lt;/tML-TABase:ManagedObjectAccessHours&gt;
 +    &lt;tML-TABase:ManagerContactPerson&gt;
 +      &lt;tML-TABase:Name&gt;Mobility ER&lt;/tML-TABase:Name&gt;
 +      &lt;tML-TABase:Phone&gt;8006382822x32&lt;/tML-TABase:Phone&gt;
 +    &lt;/tML-TABase:ManagerContactPerson&gt;
 +    &lt;tML-TABase:TroubleDetectionTime&gt;2016-12-12T16:07:35.000Z&lt;/tML-TABase:TroubleDetectionTime&gt;
 +  &lt;/tML-TA:AdditionalCreateInfo&gt;
 +&lt;/tML-TA:RequestTroubleReportCreationRequest&gt;</m:processSync></SOAP-ENV:Body></SOAP-ENV:Envelope>
 +</code>
 +
 +
 +===== Example Message from eBonding to Ticketer Inbound =====
 +==== Properties and Headers ====
 +<code>
 +reply_to: amq.gen-i6cdcimMdFcewySaESOv0Q
 +correlation_id: f2d50767-d47f-4721-8f89-fd91cc22edc0
 +headers:
 +action: search
 +</code>
 +==== Payload ====
 +<code>
 +{"ticket":{"closed_date":"null"},"form":{"table_name":"f_ebonding","circuit_id":"(NW-CA-SANFRNMC-00616) - (SNFJCAFH) - (ATT) - (01)"}}
 +</code>
 +
 +
 +===== Example Message from Ticketer to eBonding Outbound =====
 +==== Routing Key ====
 +<code>
 +com.errigal.ticketer.Ticket
 +</code>
 +==== Payload ====
 +<code>
 +{"new_value":"Under Investigation - Tier 1:admin (1)","old_value":"Alarm Received:eBondedATTsystem (1)","changed_properties":"currentStatus","object_id":"485708","event_type":"PostUpdate","domain":"com.errigal.ticketer.Ticket","full_object":"{\"class\":\"com.errigal.ticketer.Ticket\",\"id\":485708,\"actualEffort\":\"-1\",\"attachments\":[],\"changes\":[{\"class\":\"TicketChange\",\"id\":467424},{\"class\":\"TicketChange\",\"id\":467422},{\"class\":\"TicketChange\",\"id\":467423}],\"closedDate\":null,\"createDate\":\"2017-01-30T12:51:10Z\",\"creator\":{\"class\":\"User\",\"id\":242},\"currentStatus\":{\"class\":\"TicketStatus\",\"id\":478185},\"downtimeInSeconds\":0,\"dueDate\":null,\"estimatedEffort\":\"-1\",\"isDigTicket\":false,\"lastOpenDate\":null,\"lastOpenUser\":null,\"logEntries\":[],\"maintenance\":null,\"owners\":[],\"parent\":null,\"priority\":2,\"rank\":\"zzzz\",\"statuses\":[{\"class\":\"TicketStatus\",\"id\":478185},{\"class\":\"TicketStatus\",\"id\":478184}],\"summary\":\"NE-NY-NEWYOM1-ATT - NE-NY-NEWYOM1-07038 Circuit Id: (NE-NY-NEWYOM1-07038) - (NYCMNY54) - (ATT) - (01)\",\"ticketAttachments\":[],\"type\":\"eBonding\",\"updatedDate\":\"2017-02-01T16:35:05Z\",\"visibility\":\"NY - AT&T\",\"workflow\":{\"class\":\"GWorkflow\",\"id\":585}}","ticket_id":"485708"}
 +</code>
 +
 +===== Example Message from eBonding to Soap Outbound =====
 +==== Routing Key ====
 +<code>
 +soap
 +</code>
 +==== Payload ====
 +<code>
 +<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:java="http://eBonding/taservice/notify">   <soapenv:Header/>   <soapenv:Body>     <java:notify soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;AttributeValueChangeNotification xmlns="http://www.ansi.org/tML/TA/tML-TA" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tML-TA="http://www.ansi.org/tML/TA/tML-TA" xmlns:tML-TABase="http://www.ansi.org/tML/TA/tML-TABase" xsi:schemaLocation="http://www.ansi.org/tML/TA/tML-TAtML-TA.xsd"&gt;   &lt;tML-TA:NotificationId&gt;84&lt;/tML-TA:NotificationId&gt;   &lt;tML-TA:EventTime&gt;2017-01-20T07:40:10Z&lt;/tML-TA:EventTime&gt;   &lt;tML-TA:TargetObjectName&gt;
 +    &lt;tML-TABase:DistinguishedName&gt;
 +      &lt;tML-TABase:RDNSequenceItem&gt;
 +        &lt;tML-TABase:Type&gt;networkID&lt;/tML-TABase:Type&gt;
 +        &lt;tML-TABase:Assertion&gt;EXT&lt;/tML-TABase:Assertion&gt;
 +      &lt;/tML-TABase:RDNSequenceItem&gt;
 +      &lt;tML-TABase:RDNSequenceItem&gt;
 +        &lt;tML-TABase:Type&gt;accountName&lt;/tML-TABase:Type&gt;
 +        &lt;tML-TABase:Assertion&gt;EXT-M&lt;/tML-TABase:Assertion&gt;
 +      &lt;/tML-TABase:RDNSequenceItem&gt;
 +      &lt;tML-TABase:RDNSequenceItem&gt;
 +        &lt;tML-TABase:Type&gt;serviceID&lt;/tML-TABase:Type&gt;
 +        &lt;tML-TABase:Assertion&gt;(SW-NV-LVSTRI-00176) - (LSVGNV01) - (ATT) - (01)&lt;/tML-TABase:Assertion&gt;
 +      &lt;/tML-TABase:RDNSequenceItem&gt;
 +      &lt;tML-TABase:RDNSequenceItem&gt;
 +        &lt;tML-TABase:Type&gt;troubleReportID&lt;/tML-TABase:Type&gt;
 +        &lt;tML-TABase:Assertion&gt;486033&lt;/tML-TABase:Assertion&gt;
 +      &lt;/tML-TABase:RDNSequenceItem&gt;
 +    &lt;/tML-TABase:DistinguishedName&gt;
 +  &lt;/tML-TA:TargetObjectName&gt; &lt;EventData&gt;   &lt;tML-TABase:TroubleReportId&gt;486033&lt;/tML-TABase:TroubleReportId&gt;       &lt;tML-TABase:AgentContactPerson&gt;       &lt;tML-TABase:Number&gt;+1 886 892 5327&lt;/tML-TABase:Number&gt;       &lt;tML-TABase:Name&gt;ExteNet NOC&lt;/tML-TABase:Name&gt;       &lt;tML-TABase:Phone&gt;+1 886 892 5327&lt;/tML-TABase:Phone&gt;       &lt;tML-TABase:Loc&gt;         &lt;tML-TABase:CivicAddress&gt;3030 Warrenville Road&lt;/tML-TABase:CivicAddress&gt;         &lt;tML-TABase:City&gt;Lisle&lt;/tML-TABase:City&gt;         &lt;tML-TABase:State&gt;IL&lt;/tML-TABase:State&gt;         &lt;tML-TABase:Zip&gt;60532&lt;/tML-TABase:Zip&gt;       &lt;/tML-TABase:Loc&gt;       &lt;tML-TABase:Email&gt;noc@extenetsystems.com&lt;/tML-TABase:Email&gt;     &lt;/tML-TABase:AgentContactPerson&gt;   &lt;tML-TABase:AdditionalTroubleStatusInfo&gt;
 +      &lt;tML-TABase:AdditionalTroubleStatusInfoItem&gt;carrier_update has been updated to be : TEST WITH AT&lt;/tML-TABase:AdditionalTroubleStatusInfoItem&gt;
 +    &lt;/tML-TABase:AdditionalTroubleStatusInfo&gt;
 +    &lt;tML-TABase:TroubleReportStatusTime&gt;2017-01-20T07:40:10Z&lt;/tML-TABase:TroubleReportStatusTime&gt; &lt;/EventData&gt;     &lt;/AttributeValueChangeNotification&gt;</java:notify>   </soapenv:Body> </soapenv:Envelope>
 +</code>