the present invention is directed to a system and method for enabling a telecommunications network to transport the charge number ( chgn ) and calling party number ( cgpn ) parameters of the automatic number identification ( ani ) information , when available , and the presentation indicator ( pi ) from an origination trunk group to a termination trunk group . the present invention allows for mapping of the chgn to the cgpn at the termination trunk group and subscriber selected caller id delivery options . these termination trunk group options include : ( a ) honor the pi for cgpn delivery ; ( b ) deliver the cgpn regardless of the pi ; ( c ) prevent cgpn delivery in all cases ; ( d ) conditional chgn delivery ; and ( e ) conditional cgpn delivery . these options are stored in the destination switch 114 database . furthermore the pi can be set to &# 34 ; address presentation allowed &# 34 ; or &# 34 ; address presentation restricted .&# 34 ; the present invention &# 39 ; s system and method for delivering caller id information based on the ani parameters from the different trunk group types , the setting of the pi , and the subscriber delivery options is described herein . the chosen embodiment of the present invention is computer software executing within a computer system . fig2 shows an exemplary computer system . the computer system 202 includes one or more processors , such as a processor 204 . the processor 204 is connected to a communication bus 206 . the computer system 202 also includes a main memory 208 , preferably random access memory ( ram , and a secondary memory 210 . the secondary memory 210 includes , for example , a hard disk drive 214 and / or a removable storage drive 216 , representing a floppy disk drive , a magnetic tape drive , a compact disk drive , etc . the removable storage drive 216 reads from and / or writes to a removable storage unit 218 in a well known manner . removable storage unit 218 , also called a program storage device or a computer program product , represents a floppy disk magnetic tape , compact disk etc . the removable storage unit 218 includes a computer usable storage medium having stored therein computer software and / or data . computer programs ( also called computer control logic ) are stored in main memory 208 and / or the secondary memory 210 . such computer programs , when executed , enable the computer system 202 to perform the functions of the present invention as discussed herein . in particular , the computer programs , when executed , enable the processor 204 to perform the functions of the present invention . accordingly , such computer programs represent controllers of the computer system 202 . in another embodiment , the invention is directed to a computer program product comprising a computer readable medium having control logic ( computer software ) stored therein . the control logic , when executed by the processor 204 , causes the processor 204 to perform the functions of the invention as described herein . in another embodiment , the invention is implemented primarily in hardware using , for example , a hardware state machine . implementation of the hardware state machine so as to perform the functions described herein will be apparent to persons skilled in the relevant arts . fig3 is a switch call processor representing the overall preferred operation of the present invention within the switch call processing environment 130 . switch call processor 302 begins at step 304 with control passing immediately to step 312 . in step 312 a screening table for the termination trunk group is referenced to determine the appropriate information the origination trunk group should place in its message to the termination trunk group . if the termination trunk group screening table indicates that mapping the chgn to the cgpn should be done , as in conventional implementations , then step 314 is performed , which maps the chgn to the cgpn , formulates a message ( in an appropriate format for the termination trunk group 110 type ) with the chgn coded as the cgpn , sets the pi to &# 34 ; address presentation allowed ,&# 34 ; and transports the message to the termination trunk group . in step 316 , the destination switch 114 does not screen the pi and then step 318 determines termination trunk group is a ss7 / isup type . if so , step 320 is performed to consult the ss7 / isup attribute table to gather information to complete the call and ani delivery . if the termination trunk group is not a ss7 / isup type , step 322 determines if the destination switch 114 is a pri / isdn type . if so , step 324 is performed to consult the pri / isdn attribute table to gather information to complete the call and ani delivery . if the destination switch 114 is not a pri / isdn type , step 328 determines if the destination switch 114 is a pts / inband type . if so , step 328 is performed to consult the pts / inband attribute to gather information to complete the call and ani delivery . if the destination switch 114 is not a pts / inband type , step 330 simply completes the call because ani delivery is not applicable for trunk group types other than the isup / ss7 , pri / isdn , or pts / inband types . referring again to step 312 , if the termination trunk group screening table indicates that mapping the chgn to the cgpn should not be done as in current implementations , then step 340 is performed , which determines if the termination trunk group parameter , set according to the receiving party 120 subscription selection , is set to an option a --&# 34 ; honor the pi for cgpn delivery ,&# 34 ; according to the first option feature of the present invention . if so , step 342 is performed as described below . if the termination trunk group parameter is not set to delivery option a , step 350 determines if it is set to delivery option b --&# 34 ; deliver the cgpn regardless of the pi ,&# 34 ; according to the second option feature of the present invention . if so , step 352 is performed as described below . if the termination trunk group parameter is not set to delivery option b , step 360 determines if it is set to delivery option c --&# 34 ; prevent cap delivery in all cases ,&# 34 ; according to the third option feature of the present invention . if so , step 362 is performed as described below . if the termination trunk parameter is not set to delivery option c , step 370 determines if it is set to delivery option d --&# 34 ; conditional chgn delivery ,&# 34 ; according to the fourth option feature of the present invention . if so , step 372 is performed as described below . if the termination trunk group parameter is not set to option d , step 380 determines if it is set to e --&# 34 ; conditional cgpn delivery ,&# 34 ; according to the fifth option feature of the present invention . if so , step 382 is performed as described below . if step 380 determines that the termination trunk group parameter is not set to delivery option e , then none of the delivery options were selected and the switch will use existing processing beginning with step 316 and progressing as described above . as stated previously , the formation of the message to be transported to the termination trunk group is dependent on the termination trunk group type . similarly , the ani information will depend on the delivery option selected by the receiving party 120 and the pi set by the originating party 102 . below is a description of the continuation of switch call processing for options a ( step 342 ), b ( step 352 ), c ( step 362 ), d ( step 372 ), and e ( step 382 ) as illustrated by fig4 , 6 , 7 and 8 respectively , in accordance with the present invention . the switch call processor 302 , having determined at step 340 that delivery option a was selected by the receiving party 120 subscriber , proceeds to step 342 . referring to fig4 step 342 passes control to step 410 . step 410 determines whether the originating party 102 set the pi to &# 34 ; address presentation allowed .&# 34 ; if so , step 318 determines if the termination trunk group is a ss7 / isup type . if so , step 320 is performed to consult the ss7 / isup attribute table to formulate an iam ( initial address message ) to the destination switch 114 with the cgpn parameter included as received by the origination switch 108 . then step 430 delivers the message to the destination switch 114 . if the termination trunk group is not a ss7 / isup type , step 322 determines if the destination switch 114 is a pri / isdn type . if so , step 324 is performed to consult the pri / isdn attribute table to formulate a setup message to the destination switch 114 with the cgpn included . then step 430 delivers the message to the destination switch 114 . if the termination trunk group is not a pri / isdn type , step 326 determines if the termination trunk group is a pts / inband type . if so , step 328 is performed to consult the pts / inband attribute to formulate a message , following the appropriate protocol for that trunk group , to the destination switch 114 with the cgpn included . then step 430 delivers the message as ani information to the destination switch 114 . if the termination trunk group is not a pts / inband type , step 330 simply completes the call because ani delivery is not applicable for trunk group types other than isup / ss7 , pri / isdn , or pts / inband types . if step 410 determines the originating party 102 did not set the pi to &# 34 ; address presentation allowed ,&# 34 ; step 420 determines if the pi is set to &# 34 ; address presentation restricted .&# 34 ; if so , switch call processor 302 again proceeds to step 318 . step 318 determines if the termination trunk group is a ss7 / isup type . if so , step 320 is performed to consult the ss7 / isup attribute table to formulate an iam to the destination switch 114 with the cgpn parameter included as received by the origination switch 108 but with the calling party number itself ( d1 - dm ) excluded . see table 2 . then step 440 delivers the message to the destination switch 114 . if the termination trunk group is not a ss7 / isup type , step 322 determines if the termination trunk group is a pri / isdn type . if so , step 324 is performed to consult the pri / isdn attribute table to formulate a setup message to the destination switch 114 with the cgpn parameter excluded . then step 440 delivers the message to the destination switch 114 . if the termination trunk group is not a pri / isdn type , step 326 determines if the termination trunk group is a pts / inband type . if so , step 328 is performed to consult the pts / inband attribute to formulate a message , following the appropriate protocol for that trunk group , to the destination switch 114 with the cgpn excluded . then step 440 delivers the message as ani information to the destination switch 114 . if the termination trunk group is not a pts / inband type , step 330 simply completes the call because ani delivery is not applicable for trunk group types other than isup / ss7 , pri / isdn , or pts / inband types . if step 420 determines the originating party 102 did not set the pi to &# 34 ; address presentation restricted ,&# 34 ; the switch call processor 302 , in step 450 , will formulate an iam to the destination switch 114 with the cgpn parameter as received from the origination switch 108 for a ss7 / isup termination trunk group type ; formulate a setup message to the destination switch 114 with the appropriate data elements for a pri / isdn termination trunk group type ; or follow the appropriate protocol for the termination trunk group type and generate a message with the chgn included for a pts / inband termination trunk group type . the switch call processor 302 , having determined at step 350 that delivery option b was selected by the receiving party 120 subscriber , proceeds to step 352 . referring to fig5 step 352 passes control to step 510 . step 510 determines whether the originating party 102 set the pi to &# 34 ; address presentation allowed .&# 34 ; if so , step 318 determines if the termination trunk group is a ss7 / isup type . if so , step 320 is performed to consult the ss7 / isup attribute table to formulate an iam to the destination switch 114 with the cgpn parameter included as received by the origination switch 108 . then step 430 delivers the message to the destination switch 114 . if the termination trunk group is not a ss7 / isup type , step 322 determines if the destination switch 114 is a pri / isdn type . if so , step 324 is performed to consult the pri / isdn attribute table to formulate a setup message to the destination switch 114 with the cgpn parameter included . then step 430 delivers the message to the destination switch 114 . if the termination trunk group is not a pri / isdn type , step 326 determines if the termination trunk group is a pts / inband type . if so , step 328 is performed to consult the pts / inband attribute to formulate a message , following the appropriate protocol for that trunk group , to the destination switch 114 with the cgpn included . then step 430 delivers the message as ani information to the destination switch 114 . if the termination trunk group is not a pts / inband type , step 330 simply completes the call because ani delivery is not applicable for trunk group types other than isup / ss7 , pri / isdn , or pts / inband types . if step 510 determines the originating party 102 did not set the pi to &# 34 ; address presentation allowed ,&# 34 ; step 520 determines if the pi is set to &# 34 ; address presentation restricted .&# 34 ; if so , switch call processor 302 again proceeds to step 318 . step 318 determines if the termination trunk group is a ss7 / isup type . if so , step 320 is performed to consult the ss7 / isup attribute table to formulate an iam to the destination switch 114 with the cgpn parameter included ( with the calling party number itself ( d1 - dm )) as received by the origination switch 108 . then step 430 delivers the message to the destination switch 114 . if the termination trunk group is not a ss7 / isup type , step 322 determines if the termination trunk group is a pri / isdn type . if so , step 324 is performed to consult the pri / isdn attribute table to formulate a setup message to the destination switch 114 with the cgpn parameter included . then step 430 delivers the message to the destination switch 114 . if the termination trunk group is not a pri / isdn type , step 326 determines if the termination trunk group is a pts / inband type . if so , step 328 is performed to consult the pts / inband attribute to formulate a message , following the appropriate protocol for that trunk group , to the destination switch 114 with the cgpn included . then step 430 delivers the message as ani information to the destination switch 114 . if the termination trunk group is not a pts / inband type , step 330 simply completes the call because ani delivery is not applicable for trunk group types other than isup / ss7 , pri / isdn , or pts / inband types . if step 520 determines the originating party 102 did not set the pi to &# 34 ; address presentation restricted ,&# 34 ; the switch call processor 302 , instep 540 , will formulate an iam to the destination switch 114 with the cgpn parameter as received from the origination switch 108 for a ss7 / isup termination trunk group type ; formulate a setup message to the destination switch 114 with the appropriate data elements for a pri / isdn termination trunk group type ; or follow the appropriate protocol for the termination trunk group type and generate a message with the chgn included for a pts / inband termination trunk group type . the switch call processor 302 , having determined at step 360 that delivery option c was selected by the receiving party 120 subscriber , proceeds to step 362 . referring to pig . 6 , step 362 passes control to step 610 . step 610 determines whether the originating party 102 set the pi to &# 34 ; address presentation allowed .&# 34 ; if so , step 318 determines if the termination trunk group is a ss7 / isup type . if so , step 320 is performed to consult the ss7 / isup attribute table to formulate an iam to the destination switch 114 without the cgpn parameter included as received by the origination switch 108 . then step 440 delivers the message to the destination switch 114 . if the termination trunk group is not a ss7 / isup type , step 322 determines if the destination switch 114 is a pri / isdn type . if so , step 324 is performed to consult the pri / isdn attribute table to formulate a setup message to the destination switch 114 without the cgpn parameter included . then step 440 delivers the message to the destination switch 114 . if the termination trunk group is not a pri / isdn type , step 326 determines if the termination trunk group is a pts / inband type . if so , step 328 is performed to consult the pts / inband attribute to formulate a message , following the appropriate protocol for that trunk group , to the destination switch 114 without the cgpn included . then step 440 delivers the message as ani information to the destination switch 114 . if the termination trunk group is not a pts / inband type , step 330 simply completes the call because ani delivery is not applicable for trunk group types other than isup / ss7 , pri / isdn , or pts / inband types . if step 610 determines the originating party 102 did not set the pi to &# 34 ; address presentation allowed ,&# 34 ; step 620 determines if the pi is set to &# 34 ; address presentation restricted . &# 34 ; if so , switch call processor 302 again proceeds to step 318 . step 318 determines if the termination trunk group is a ss7 / isup type . if so , step 320 is performed to consult the ss7 / isup attribute table to formulate an iam to the destination switch 114 without the cgpn parameter included . then step 440 delivers the message to the destination switch 114 . if the termination trunk group is not a ss7 / isup type , step 322 determines if the termination trunk group is a pri / isdn type . if so , step 324 is performed to consult the pri / isdn attribute table to formulate a setup message to the destination switch 114 without the cgpn parameter included . then step 440 delivers the message to the destination switch 114 . if the termination trunk group is not a pri / isdn type , step 326 determines if the termination trunk group is a pts / inband type . if so , step 328 is performed to consult the pts / inband attribute to formulate a message , following the appropriate protocol for that trunk group , to the destination switch 114 without the cgpn included . then step 440 delivers the message as ani information to the destination switch 114 . if the termination trunk group is not a pts / inband type , step 330 simply completes the call because ani delivery is not applicable for trunk group types other than isup / ss7 , pri / isdn , or pts / inband types . if step 620 determines the originating party 102 did not set the pi to &# 34 ; address presentation restricted ,&# 34 ; the switch call processor 302 , in step 640 , will formulate an iam to the destination switch 114 with the cgpn parameter as received from the origination switch 108 for a ss7 / isup termination trunk group type ; formulate a appropriate e to the destination switch 114 with the appropriate data elements for a pri / isdn termination trunk group type ; or follow the appropriate protocol for the termination trunk group type and generate a message with the chgn included for a pts / inband termination trunk group type . the switch call processor 302 , having determined at step 370 that delivery option d was selected by the receiving party 120 subscriber , proceeds to step 372 . referring to fig7 step 372 passes control to step 710 . step 710 determines whether the originating party 102 set the pi to &# 34 ; address presentation allowed .&# 34 ; if so , step 318 determines if the termination trunk group is a ss7 / isup type . if so , step 320 is performed to consult the ss7 / isup attribute table to formulate an iam with the charge number , if it is available , placed in the chgn parameter . else , if the chgn is not available , the calling party number will be included in the cgpn parameter . then step 730 delivers the message to the destination switch 114 with either the chgn parameter or the cgpn parameter , but never both . if the termination trunk group is not a ss7 / isup type , step 322 determines if the destination switch 114 is a pri / isdn type . if so , step 324 is performed to consult the pri / isdn attribute table to formulate a setup message with the charge number , if it is available , placed in the cgpn parameter . else , if the chgn is not available , the calling party number will be included in the cgpn parameter . then step 740 delivers the message to the destination switch 114 with one of the parameters filled but never both . if the termination trunk group is not a pri / isdn type , step 326 determines if the termination trunk group is a pts / inband type . if so , step 328 is performed to consult the pts / inband attribute to formulate a message , following the appropriate protocol for that trunk group , to the destination switch 114 with the chgn , if available , included . else , if the chgn is not available , the cgpn will be included . then step 750 delivers the message as ani information to the destination switch 114 with either the chgn or cgpn but never both . if the termination trunk group is not a pts / inband type , step 330 simply completes the call because ani delivery is not applicable for trunk group types other than isup / ss7 , pri / isdn , or pts / inband types . if step 710 determines the originating party 102 did not set the pi to &# 34 ; address presentation allowed ,&# 34 ; step 720 determines if the pi is set to &# 34 ; address presentation restricted .&# 34 ; if so , switch call processor 302 again proceeds to step 318 . step 318 determines if the termination trunk group is a ss7 / isup type . if so , step 320 is performed to consult the ss7 / isup attribute table to formulate an iam with the charge number , if it is available , placed in the chgn parameter . else , if the chgn is not available , the calling party number will not be included in the cgpn parameter . then step 730 delivers the message to the destination switch 114 . if the termination trunk group is not a ss7 / isup type , step 322 determines if the destination switch 114 is a pri / isdn type . if so , step 324 is performed to consult the pri / isdn attribute table to formulate a setup message with the charge number , if it is available , placed in the cgpn parameter . else , if the chgn is not available , the calling party number will not be included in the cgpn parameter . then step 740 delivers the message to the destination switch 114 . if the termination trunk group is not a pri / isdn type , step 326 determines if the termination trunk group is a pts / inband type . if so , step 328 is performed to consult the pts / inband attribute to formulate a message , following the appropriate protocol for that trunk group , to the destination switch 114 with the chgn , if available , included . else , if the chgn is not available , the cgpn will not be included . then step 750 delivers the message as ani information to the destination switch 114 . if the termination trunk group is not a pts / inband type , step 330 simply completes the call because ani delivery is not applicable for trunk group types other than isup / ss7 , pri / isdn , or pts / inband types . if step 720 determines the originating party 102 did not set the pi to &# 34 ; address presentation restricted ,&# 34 ; the switch call processor 302 , in step 760 , will formulate an iam to the destination switch 114 with the cgpn parameter as received from the origination switch 108 for a ss7 / isup termination trunk group type ; formulate a setup message to the destination switch 114 with the appropriate data elements for a pri / isdn termination trunk group type ; or follow the appropriate protocol for the termination trunk group type and generate a message with the chgn included for a pts / inband termination trunk group type . the switch call processor 302 , having determined at step 380 that delivery option e was selected by the receiving party 120 subscriber , proceeds to step 382 . referring to fig8 step 382 passes control to step 810 . step 810 determines whether the originating party 102 set the pi to &# 34 ; address presentation allowed .&# 34 ; if so , step 318 determines if the termination trunk group is a ss7 / isup type . if so , step 320 is performed to consult the ss7 / isup attribute table to formulate an iam with the calling party number , if it is available , placed in the cgpn parameter . else , if the cgpn is not available , the charge number will be included in the chgn parameter . then step 830 delivers the message to the destination switch 114 with either the cgpn parameter or the chgn parameter , but never both . if the termination trunk group is not a ss7 / isup type , step 322 determines if the destination switch 114 is a pri / isdn type . if so , step 324 is performed to consult the pri / isdn attribute table to formulate a setup message with the calling party number , if it is available , placed in the cgpn parameter . else , if the cgpn is not available , the chgn will be included in the cgpn parameter . then step 840 delivers the message to the destination switch 114 with either the cgpn or chgn placed in the cgpn parameter , but never both . if the termination trunk group is not a pri / isdn type , step 326 determines if the termination trunk group is a pts / inband type . if so , step 328 is performed to consult the pts / inband attribute to formulate a message , following the appropriate protocol for that trunk group , to the destination switch 114 with the cgpn , if available , included . else , if the cgpn is not available , the chgn will be included . then step 850 delivers the message as ani information to the destination switch 114 with either the cgpn or chgn but never both . if the termination trunk group is not a pts / inband type , step 330 simply completes the call because ani delivery is not applicable for trunk group types other than isup / ss7 , pri / isdn , or pts / inband types . if step 810 determines the originating party 102 did not set the pi to &# 34 ; address presentation allowed ,&# 34 ; step 820 determines if the pi is set to &# 34 ; address presentation restricted .&# 34 ; if so , switch call processor 302 again proceeds to step 318 . step 318 determines if the termination trunk group is a ss7 / isup type . if so , step 320 is performed to consult the ss7 / isup attribute table to formulate an iam with the charge number , if it is available , placed in the chgn parameter . else , if the chgn is not available , the calling party number will not be included in the cgpn parameter . then step 860 delivers the message to the destination switch 114 . if the termination trunk group is not a ss7 / isup type , step 322 determines if the destination switch 114 is a pri / isdn type . if so , step 324 is performed to consult the pri / isdn attribute table to formulate a setup message with the charge number , if it is available , placed in the cgpn parameter . else , if the chgn is not available , the calling party number will not be included in the cgpn parameter . then step 870 delivers the message to the destination switch 114 . if the termination trunk group is not a pri / isdn type , step 326 determines if the termination trunk group is a pts / inband type . if so , step 328 is performed to consult the pts / inband attribute to formulate a message , following the appropriate protocol for that trunk group , to the destination switch 114 with the chgn , if available , included . else , if the chgn is not available , the cgpn will not be included . then step 880 delivers the message as ani information to the destination switch 114 . if the termination trunk group is not a pts / inband type , step 330 simply completes the call because ani delivery is not applicable for trunk group types other than isup / ss7 , pri / isdn , or pts / inband types . if step 820 determines the originating party 102 did not set the pi to &# 34 ; address presentation restricted ,&# 34 ; the switch call processor 302 , in step 890 , will formulate an iam to the destination switch 114 with the cgpn parameter as received from the origination switch 108 for a ss7 / isup termination trunk group type ; formulate a setup message to the destination switch 114 with the appropriate data elements for a pri / isdn termination trunk group type ; or follow the appropriate protocol for the termination trunk group type and generate a message with the chgn included for a pts / inband termination trunk group type . while various embodiments of the present invention have been described above , it should be understood that they have been presented by way of example , and not limitation . it will be apparent to persons skilled in the relevant art that various changes in form and detail can be made therein without departing from the spirit and scope of the invention . thus the present invention should not be limited by any of the above - described exemplary embodiments , but should be defined only in accordance with the following claims and their equivalents .