bayonne-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Bayonne-devel] Bayonne Globalcall TASKFAIL andTRUNK_CALL_FAILURE


From: Mladenovič Zoran
Subject: RE: [Bayonne-devel] Bayonne Globalcall TASKFAIL andTRUNK_CALL_FAILURE
Date: Fri, 3 Feb 2006 12:36:50 +0100

Sorry for late answer...vacations :-)

 Our modifications in globalcall drivers:

 - trunk.cpp - setting OPT-BACKW indicator in ACM msg. eACM, 
 only voice path is activated.

 bool DialogicTrunk::acceptCall(void)
 {
   if(Trunk::flags.offhook || _accepted)
     return false;

         S7_IE_BLK ie_blk;
         GC_IE_BLK gc_ie_blk;

         ie_blk.length = 7;
         ie_blk.length = 7;

         ie_blk.data[0] = 0x11; /* Parameter name - BACKW indicator */
         ie_blk.data[1] = 0x02; /* Parameter length - 2 byte's */
         ie_blk.data[2] = 0x00; /* Parameter value - 1st byte */
         ie_blk.data[3] = 0x00; /* Parameter value - 2nd byte */

         ie_blk.data[4] = 0x29; /* Parameter name - OPT-BACKW indicator */
         ie_blk.data[5] = 0x01; /* Parameter length - 1 byte */
         ie_blk.data[6] = 0x01; /* Parameter value - 1st byte */

         gc_ie_blk.gclib = NULL;
         gc_ie_blk.cclib = &ie_blk;

         gc_SetInfoElem(linedev, &gc_ie_blk);

   if(gc_AcceptCall(crn, 0, EV_ASYNC) < 0)
         //Julien tip START
         {
          slog (Slog::levelError)
 <<"dx("<<id<<"):"<<"gc_AcceptCall("<<crn<<") == FAILURE call 
 state:"<<call_state<< endl; gc_ResetLineDev(linedev, EV_ASYNC);
          gcResetLineDev=1;
          slog(Slog::levelError)
 <<"dx("<<id<<"):"<<"gc_ResetLineDev()"<<endl; postGCError("gc_AcceptCall");
          return false;
         }
         //Julien tip STOP

   _accepted = true;

   return true;
 }


 - trunk.cpp - seting makecall in SS7 network

 bool DialogicTrunk::makeCall(char digit[16], int timeout) {
   MAKECALL_BLK makecall_blk;
   GC_MAKECALL_BLK gclib_blk;
   S7_MAKECALL_BLK s7_makecall_blk;

   int rtn = 0;

   s7_makecall_blk.ss7.trans_medium_req = TMR_3DOT1K_AUDIO;
   s7_makecall_blk.ss7.destination_number_type = SS7_NATIONAL_NUMBER;
   s7_makecall_blk.ss7.destination_number_plan = SS7_ISDN_NUMB_PLAN;
   s7_makecall_blk.ss7.internal_network_number = INN_ALLOWED; //  
 s7_makecall_blk.ss7.continuity_check_indicator = CCI_CC_NOTREQUIRED;
   if(data.dialxfer.callingdigit)
   {
     s7_makecall_blk.ss7.origination_number_type = SS7_NATIONAL_NUMBER;
     s7_makecall_blk.ss7.origination_number_plan = SS7_ISDN_NUMB_PLAN;
     s7_makecall_blk.ss7.origination_present_restrict = 
 PRESENTATION_ALLOWED; s7_makecall_blk.ss7.origination_screening = 
 SCREEN_NETWORK_PROVIDED; s7_makecall_blk.ss7.calling_party_category = 
 SS7_ORDINARY_SUBS_CATEGORY; 
 sprintf(s7_makecall_blk.ss7.origination_phone_number,
             data.dialxfer.callingdigit);
   }
   else
   {
     s7_makecall_blk.ss7.origination_number_type = NAT_NUMBER;
     s7_makecall_blk.ss7.origination_number_plan = SS7_ISDN_NUMB_PLAN;
     s7_makecall_blk.ss7.origination_present_restrict = 
 PRESENTATION_ALLOWED; s7_makecall_blk.ss7.origination_screening = 
 SCREEN_NETWORK_PROVIDED; 
 s7_makecall_blk.ss7.origination_phone_number[0] = '\0';
     s7_makecall_blk.ss7.calling_party_category = 
 SS7_ORDINARY_SUBS_CATEGORY; }

   gclib_blk.gclib = NULL;
   gclib_blk.cclib = (void *)&s7_makecall_blk;

   rtn = gc_MakeCall(linedev, &crn, digit, &gclib_blk, 0, EV_ASYNC);

   if(rtn < 0)
   {
     return false;
   }

   if(timeout)
     TimerPort::setTimer(data.dialxfer.timeout + 120 
 *strlen(data.dialxfer.digit));

   return true;
 }


 - trunk.cpp - parsing additional parameters in IAM msg.


/**
 * New pstn symbols have been implemented for globalcall drivers.
 * They are read (parsed) from the ISUP message for a particular line device.
 * The added symbols are: DNID, OCN, REDIRECTING_NUMBER, GENERIC, CLID  */

 void DialogicTrunk::getCallerId(void)
 {
   char cid[GC_ADDRSIZE];

   strcpy((char *)cid, "pstn:");

   char buffer[33];
   getName(buffer);

   if(gc_GetANI(crn, cid + 5) == GC_SUCCESS)
   {
     setConst(SYM_CALLER, (char *)cid);
     setConst(SYM_CLID, (char *)cid + 5);
   }
   if(gc_GetDNIS(crn, cid + 5) == GC_SUCCESS)
   {
     setConst(SYM_DIALED, (char *)cid);
     setConst(SYM_DNID, (char *)cid + 5);
   }


    METAEVENT metaevent;   /* The metaevent for line device. */
    GC_INFO gc_error_info; /* GlobalCall error information data. */
    GC_PARM parm_val;      /* Get cyclic buffer length.*/

    // Get meta event structure.
    int retcode = gc_GetMetaEvent(&metaevent);
    if (retcode < 0) {
       /* process error return as shown */
       gc_ErrorInfo( &gc_error_info );
       printf ("Error: gc_GetMetaEvent() on linedev: 0x%lx, GC ErrorValue:
 0x%hx - %s, CCLibID: %i - %s, CC ErrorValue: 0x%lx - %s\n",
       linedev, gc_error_info.gcValue, gc_error_info.gcMsg,
       gc_error_info.ccLibId, gc_error_info.ccLibName,
       gc_error_info.ccValue, gc_error_info.ccMsg);
    }

    char msg_buffer[300]; // Should be enough to hold any ISUP message.

    if (gc_GetSigInfo(linedev, msg_buffer, U_IES, &metaevent) != 
 GC_SUCCESS) { /* process error return as shown */
       gc_ErrorInfo( &gc_error_info );
       printf ("Error: gc_GetSigInfo() on linedev: 0x%lx, GC ErrorValue:
 0x%hx - %s, CCLibID: %i - %s, CC ErrorValue: 0x%lx - %s\n",
       linedev, gc_error_info.gcValue, gc_error_info.gcMsg,
       gc_error_info.ccLibId, gc_error_info.ccLibName,
       gc_error_info.ccValue, gc_error_info.ccMsg);
    }
    else {
       S7_SIGINFO_BLK *blk_p = (S7_SIGINFO_BLK *) msg_buffer;

       /* <print out event raw data> */
        printf("gc_GetSigInfo() : \n");
        printf("[%02x, %02x] : ", blk_p->prim, blk_p->length );
        cout << hex_bytes((unsigned char *) msg_buffer, blk_p->length) 
 << endl;

        S7_IE *ie_p = (S7_IE *) &(blk_p -> data);
        do {
           unsigned char *data_p = &ie_p->value;

           printf("[%02x, %02x] : ", ie_p->parm, ie_p->length );
           cout << hex_bytes(data_p, ie_p->length) << endl;

           ie_p = (S7_IE *)(data_p + ie_p->length);
        } while ((char *) ie_p < (char *) blk_p + blk_p->length);
       /* </print out event raw data> */

       /* <parse and assign parameters> */
       ie_p = (S7_IE *) &(blk_p -> data);
       do {
          unsigned char *data_p = &ie_p->value;

          switch (ie_p->parm) {

             // DNID
             case 0x04:
                unsigned char dnidnoa[GC_ADDRSIZE];
                byte_to_dec(dnidnoa, data_p[0] & 0x7f);
                //cout << "dnidnoa : " << dnidnoa << endl;
                setConst(SYM_DNID_NOA, (char *) dnidnoa);

                unsigned char dnidpri[GC_ADDRSIZE];
                byte_to_dec(dnidpri, data_p[1] & 0x0c);
                //cout << "dnidpri : " << dnidpri << endl;
                setConst(SYM_DNID_PRI, (char *) dnidpri);

                unsigned char dnid[GC_ADDRSIZE];
                BCD_to_char(dnid, data_p+2, ie_p->length-2);
                //cout << "dnid :" << dnid << endl;
                setConst(SYM_DNID, (char *) dnid);
                break;

             // OCN
             case 0x28:
                unsigned char ocnnoa[GC_ADDRSIZE];
                byte_to_dec(ocnnoa, data_p[0] & 0x7f);
                //cout << "ocnnoa : " << ocnnoa << endl;
                setConst(SYM_OCN_NOA, (char *) ocnnoa);

                unsigned char ocnpri[GC_ADDRSIZE];
                byte_to_dec(ocnpri, data_p[1] & 0x0c);
                //cout << "ocnpri : " << ocnpri << endl;
                setConst(SYM_OCN_PRI, (char *) ocnpri);

                unsigned char ocn[GC_ADDRSIZE];
                BCD_to_char(ocn, data_p+2, ie_p->length-2);
                //cout << "ocn :" << ocn << endl;
                setConst(SYM_OCN, (char *) ocn);
                break;

             // REDIRECTING_NUMBER
             case 0x0B:
                unsigned char rednoa[GC_ADDRSIZE];
                byte_to_dec(rednoa, data_p[0] & 0x7f);
                //cout << "rednoa : " << rednoa << endl;
                setConst(SYM_REDIRECT_NOA, (char *) rednoa);

                unsigned char redpri[GC_ADDRSIZE];
                byte_to_dec(redpri, data_p[1] & 0x0c);
                //cout << "redpri : " << redpri << endl;
                setConst(SYM_REDIRECT_PRI, (char *) redpri);

                unsigned char red[GC_ADDRSIZE];
                BCD_to_char(red, data_p+2, ie_p->length-2);
                //cout << "red :" << red << endl;
                setConst(SYM_REDIRECT, (char *) red);
                break;

             // GENERIC
             case 0xc0:
                unsigned char genericnoa[GC_ADDRSIZE];
                byte_to_dec(genericnoa, data_p[1] & 0x7f);
                //cout << "genericnoa : " << genericnoa << endl;
                setConst(SYM_GENERIC_NOA, (char *) genericnoa);

                unsigned char genericpri[GC_ADDRSIZE];
                byte_to_dec(genericpri, data_p[2] & 0x0c);
                //cout << "genericpri : " << genericpri << endl;
                setConst(SYM_GENERIC_PRI, (char *) genericpri);

                unsigned char generic[GC_ADDRSIZE];
                BCD_to_char(generic, data_p+3, ie_p->length-3);
                //cout << "generic :" << generic << endl;
                setConst(SYM_GENERIC, (char *) generic);
                break;

             // CLID
             case 0x0a:
                unsigned char clidnoa[GC_ADDRSIZE];
                byte_to_dec(clidnoa, data_p[0] & 0x7f);
                //cout << "clidnoa : " << clidnoa << endl;
                setConst(SYM_CLID_NOA, (char *) clidnoa);

                unsigned char clidpri[GC_ADDRSIZE];
                byte_to_dec(clidpri, data_p[1] & 0x0c);
                //cout << "clidpri : " << clidpri << endl;
                setConst(SYM_CLID_PRI, (char *) clidpri);

                unsigned char clid[GC_ADDRSIZE];
                BCD_to_char(clid, data_p+2, ie_p->length-2);
                //cout << "clid :" << clid << endl;
                setConst(SYM_CLID, (char *) clid);
                break;
          }

          // Move pointer to the next information element.
          ie_p = (S7_IE *)(data_p + ie_p->length);
       } while ((char *)ie_p < (char *) blk_p + blk_p->length);
       /* </parse and assign parameters> */

    }


 }


 - driver.cpp - seting parameters for ???????

/**
 * Setting the cyclic buffer length to non zero value. This makes
 * possible to get ISUP message in trunk.cpp with gc_GetSigInfo(...)
 * function.
/*


 int set_parm(LINEDEV ldev)
 {
    GC_INFO gc_error_info;  /* GlobalCall error information data */
    GC_PARM gc_parm;        /* parm values */

    /*
    * Set cyclic buffer length.
    */


    gc_parm.charvalue = 20;
    if ( gc_SetParm(ldev, GCPR_RECEIVE_INFO_BUF, gc_parm) != GC_SUCCESS) {
       /* process error return as shown */
       gc_ErrorInfo( &gc_error_info );
       printf ("Error: gc_SetParm() on device handle: 0x%lx, GC ErrorValue:
 0x%hx - %s, CCLibID: %i - %s, CC ErrorValue: 0x%lx - %s\n",
       ldev, gc_error_info.gcValue, gc_error_info.gcMsg,
       gc_error_info.ccLibId, gc_error_info.ccLibName,
       gc_error_info.ccValue, gc_error_info.ccMsg);
       return (gc_error_info.gcValue);
    }

    return (0);
 }

 - driver.cpp - opening voice device

                 card = ((s - 1) * 30 + i) / 4 + 1;
                 vox = ((s - 1) * 30 + i) % 4 + 1;

                 portidx = i + (getSpanPorts() * (s - 1));

                 devmap[portidx].tsdev = devmap[portidx].chdev = -1;

                 sprintf(devmap[portidx].voicedev, "dxxxB%dC%d", card, vox);
                 if(!stricmp(getSpanProtocol(), "ss7"))
                 {
                         sprintf(devmap[portidx].devname, 
 ":L_SS7:N_dtiB%dT%d:P_%s:V_%s", s, i + 1, getSpanProtocol(), 
 devmap[portidx].voicedev); }

Br
Zoran 

-----Original Message-----
From: address@hidden [mailto:address@hidden On Behalf Of Julien Chavanton
Sent: Wednesday, January 18, 2006 9:57 PM
To: Mladenovič Zoran; David Sugar
Cc: address@hidden
Subject: RE: [SPAM] - RE: [Bayonne-devel] Bayonne Globalcall TASKFAIL 
andTRUNK_CALL_FAILURE - Bayesian Filter detected spam

Please post your change for future reference if needed.

Thank you,
Julien

-----Original Message-----
From: Mladenovic Zoran [mailto:address@hidden
Sent: January 17, 2006 5:20 AM
To: Julien Chavanton; David Sugar
Cc: address@hidden
Subject: RE: [SPAM] - RE: [Bayonne-devel] Bayonne Globalcall TASKFAIL and 
TRUNK_CALL_FAILURE - Bayesian Filter detected spam

We are using dm3 DMW1200 E1 cards with external SIU520 for signaling. In order 
to make everything work, driver.cpp need's to be changed to open ss7 device 
(":L_SS7:N_dtiB%dT%d:P_%s:V_%s").  trunk.cpp was also changed, for parsing 
additional messages in IAMa and applying eACM to achieve charge free calls. If 
interested, I can post that changes.

REL is release and RLC is release complete ISUP message. I'm interested how you 
solve short call properly. Can you send me changes you've made?

Zoran

-----Original Message-----
From: Julien Chavanton [mailto:address@hidden
Sent: Saturday, January 14, 2006 2:16 AM
To: Mladenovič Zoran; David Sugar
Cc: address@hidden
Subject: RE: [SPAM] - RE: [Bayonne-devel] Bayonne Globalcall TASKFAIL and 
TRUNK_CALL_FAILURE - Bayesian Filter detected spam

This is interresting,
 
You are using globalcall with SS7, can you let us know what drivers version and 
board you are using.
I do not know bout REL or RLC 
 
I know the fix I use are working with Globalcall/Isdn.
1.000.000 calls and 99% asr with all the Ports/DS0 still running.
Performance is good even if I am still running redhat 7.3 (I should make 
dialogic work on redhat9 at least since the threading as been improved).
 
If this is a real problem for you I could verify the CVS version I am still 
using a modified bayonne-1.2.13-OWI.tar.gz (Because there was to much quick 
customization requirement for us, I did not follow the Bayonne structure enough 
whe implementing change.)
 
However I could verify the CVS version to see if the 2 problems I have 
indentified are fixed.
1 - Short calls and abandon calls handling.
2 - Multiple CRN's support 
 
I would recommend activating globalcall event logging it is always good to know 
"Bayonne state" and "Globalcall state" when a problem take place.
Globalcall can behave abnormaly when there is shortcall and abandon calls but 
with proper handling no problem.
What I did was to use syslog-ng over the network to keep full logging while 
running lots of traffic.
 
 
Julien
 
 

        -----Original Message----- 
        From: address@hidden on behalf of Mladenovič Zoran 
        Sent: Wed 1/11/2006 04:22 PM 
        To: David Sugar 
        Cc: address@hidden 
        Subject: [SPAM] - RE: [Bayonne-devel] Bayonne Globalcall TASKFAIL and 
TRUNK_CALL_FAILURE - Bayesian Filter detected spam
        
        

        Cool...I have some "filthy" services running on top of 20050116 release 
(odbc...) and with couple of 100k calls per day this is not so rare event. 
Beside that it is rock stable.
        
        Zoran
        
        -----Original Message-----
        From: address@hidden [mailto:address@hidden On Behalf Of David Sugar
        Sent: Wednesday, January 11, 2006 7:24 PM
        To: Mladenovič Zoran
        Cc: address@hidden
        Subject: Re: [Bayonne-devel] Bayonne Globalcall TASKFAIL and 
TRUNK_CALL_FAILURE
        
        I suspect this issue is related to what I am thinking of with handling 
of call state in gc, especially for short calls, vs how the Bayonne state 
machine ends up processing them and what Bayonne believes the call state is.  I 
may jump all the way back to 1.2.11, and roll forward some changes selectivily 
as well as some of my own ideas about having a call cleared flag for this.
        
        Mladenovič Zoran wrote:
        
        >Would this help to solve my problem?
        >
        >I have mid-range installation with 2 IVR's, 16 E-1, ss7. When there is 
short call, or sometimes, when call is abandoned, links are blocked because of 
that.
        >Extract from ss7 trace:
        >
        >08:33 23.657    <-- [12] IAM in cs_READY, i=0, 
p:010601000702600109010a020100040803901551910000f20a060313131861790801000b0603101416572413020361280603
        10141657241d038090a33102005a390431d03fc03f08849383460140110100
        >08:33 23.657  <==   [12] MT_OFFERED_IND    in cs_OFFERED, size=172
        >08:33 23.657    <-- [12] REL in cs_OFFERED, i=0, p:0c1202839f00
        >08:33 23.657  <==   [12] MT_DISCONNECT_IND in cs_DISCONNECTED, size=25
        >08:33 23.657    --> [12] REL in cs_DISCONNECTED, p:0c00
        >08:33 35.135    <-- [12] REL in cs_DISCONNECTED, i=0, p:0c1202859f00
        >08:33 35.136  WARNING: [12] Circuit::ProcessMsg() REL in
        >cs_DISCONNECTED, still waiting for application DropCall
        >
        >As seen above Bayonne is still sending REL message instead of RLC. SS7 
guard timer expires and port is blocked.
        >
        >Zoran Mladenovic
        >
        >-----Original Message-----
        >From: address@hidden
        >[mailto:address@hidden
        ><mailto:address@hidden> ] On
        >Behalf Of David Sugar
        >Sent: Friday, December 30, 2005 7:04 PM
        >To: Julien Chavanton
        >Cc: address@hidden
        >Subject: Re: [Bayonne-devel] Bayonne Globalcall TASKFAIL and
        >TRUNK_CALL_FAILURE
        >
        >Hmm...one thing I think we should do is add a "cleared" flag to the 
Dialogic trunk structure. This would be used to indicate that the current call 
had been "cleared" (channel reset after a failure, for example), but that the 
driver (bayonne state) is not yet "idle". This could happen if we reset a 
channel and issue a hangup signal event to the script engine to handle call 
exiting scripts, for example.
        >
        >Hence, in the example you give, instead of issuing TRUNK_CALL_FAILURE 
in response to the TASKFAIL, I think we should instead raise the cleared flag, 
and post a TRUNK_STOP_DISCONNECT. The hangup state handler, when it is later 
called, would check the cleared flag, and skip hangup if the channel is already 
"cleared". The idle state would reset the cleared flag on entry. If a new call 
is presented in postEvent while the current call is still clearing, then it 
should send back a call reject. This I think is also related to the 
simultaneous CRN issue.
        >
        >What do you think of this idea?
        >
        >Julien Chavanton wrote:
        >
        > 
        >
        >>I have made a few modification to globalcall drivers to handle
        >>TASKFAIL more efficiently
        >>
        >>I always reset the port when there is a TASKFAIL because anyway when
        >>there is a TASKFAIL the call is lost and most of the time the TASKFAIL
        >>is caused by short call
        >>
        >>Or abandon calls.
        >>
        >>This is producing positive results.
        >>
        >>The only difficulty was to keep bayonne state sync with Globalcall
        >>state because RESETLINEDEV is not the normal state transition.
        >>
        >>-------------------------------------------------------------
        >>
        >>I keep an eye on Bayonne 2 evolution; it would be interesting for me
        >>to help with the Globalcall Drivers in Bayonne 2.
        >>
        >>Something positive about Globalcall is that Intel is moving to HMP
        >>host media processing "Voip library optimized for Xeon CPU".
        >>
        >>And this may be the best performance Voip solution available due to
        >>the integration in the Xeon CPU internal instructions.
        >>
        >>If they succeed Globalcall should be almost compatible with HMP, and
        >>bayonne could be HMP enabled without to much work.
        >>
        >>However HMP is commercial I think it is 10$ a port and it may be too
        >>much for a software solution.
        >>
        >>Julien
        >>
        >>----------------------------------------------------------------------
        >>--
        >>
        >>*From:*
        >>address@hidden
        >>[mailto:address@hidden <mailto:address@hidden> .
        >>org]
        >>*On Behalf Of *Julien Chavanton
        >>*Sent:* December 19, 2005 10:09 AM
        >>*To:* address@hidden
        >>*Cc:* address@hidden
        >>*Subject:* [Bayonne-devel] Bayonne Globalcall TASKFAIL and
        >>TRUNK_CALL_FAILURE
        >>
        >>Hi David,
        >>
        >>I am looking to modify TRUNK_CALL_FAILURE in bayonne globalcall since
        >>this is currently handled as a disconnection.
        >>
        >>It was not that bad but most of the time this is not enough.
        >>
        >>And we loose port, only when there is a TASKFAIL that is really caused
        >>by the Dialogic drivers.
        >>
        >>The main source of TASKFAIL is abandon calls and short calls the
        >>Dialogic drivers are not capable of handling this automatically and
        >>this result in TASKFAIL
        >>
        >>The only problem I think is that the script may be left attached and
        >>the next call will fail to attach.
        >>
        >>Here is what I have in mind:
        >>
        >>globalcall/driver.cpp
        >>
        >>case GCEV_TASKFAIL
        >>
        >>event.id = TRUNK_CALL_FAILURE;
        >>
        >>trunk->postEvent(&event);
        >>
        >>gc_ResetLineDev(linedev, EV_ASYNC);
        >>
        >>break;
        >>
        >>globalcall/trunk.cpp
        >>
        >>case TRUNK_CALL_FAILURE:
        >>
        >>// We need to prepare Bayonne for recovery of next call
        >>
        >>Trunk::detach();
        >>
        >>if(join)
        >>
        >>Part();
        >>
        >>if(tgi.pid)
        >>
        >>::kill(tgi.pid, SIGHUP);
        >>
        >>if(thread)
        >>
        >>thread->stop();
        >>
        >>Trunk::flags.dsp = DSP_MODE_INACTIVE;
        >>
        >>More information about TASKFAIL if any interest:
        >>
        >>How to Handle GCEV_TASKFAIL Events (However I have made some test and
        >>I am not sure about this article complete accuracy)
        >>
        >>http://resource.intel.com/telecom/support/tnotes/tnbyos/2000/tn061.htm
        >><http://resource.intel.com/telecom/support/tnotes/tnbyos/2000/tn061.ht
        >>m>
        >>
        >>You can find information about abandon calls here:
        >>
        >>http://resource.intel.com/telecom/support/releases/winnt/SR511FP1/onld
        >><http://resource.intel.com/telecom/support/releases/winnt/SR511FP1/onl
        >>d>
        >>oc/htmlfiles/gcprgdw/gc-sta15.htm
        >>
        >>----------------------------------------------------------------------
        >>-
        >>-
        >>
        >>_______________________________________________
        >>Bayonne-devel mailing list
        >>address@hidden
        >>http://lists.gnu.org/mailman/listinfo/bayonne-devel
        >><http://lists.gnu.org/mailman/listinfo/bayonne-devel>
        >>
        >>
        >>   
        >>
        >
        >
        >SAMO NASLOVNIKU! / ONLY FOR THE INTENDED RECIPIENT!
        >
        >To elektronsko sporočilo in pripete datoteke lahko vsebujejo 
informacije zaupne narave in/ali informacije, ki so varovane s pravom in so 
namenjene samo posamezniku ali družbi, na katero so naslovljene. Kakršnakoli 
neavtorizirana uporaba  informacij, prejetih v tem elektronskem sporočilu in 
pripetih datotekah, je prepovedana.
        >Če elektronsko sporočilo in pripete datoteke niso bile namenjene 
prejemniku sporočila, ali če je bilo zaradi napake v naslovniku ali pri prenosu 
sporočilo poslano drugam, prosimo, da o tem obvestite pošiljatelja, prejeto 
elektronsko sporočilo in pripete datoteke pa brez kakršnekoli predhodne uporabe 
zbrišite. Mobitel, d. d., in z njim povezane ali od njega odvisne družbe niso 
odgovorne za elektronsko sporočilo in pripete datoteke, če je to spremenjeno, 
ponarejeno ali preoblikovano s strani tretje osebe. Elektronsko sporočilo in 
pripete datoteke so bile pregledane z antivirusno programsko opremo.
        >
        >
        >This e-mail and its attachments may contain confidential and/or 
privileged information and are intended solely for the use of the individual or 
entity to whom they are addressed. Any unauthorized use of information received 
in this email and its attachments is forbidden. If you are not the intended 
recipient, or an addressing or transmission error has misdirected this e-mail, 
please notify the sender by replying to this e-mail and delete it without any 
prior use. Neither Mobitel, d.d. nor any of its subsidiaries or affiliates 
shall be liable for the e-mail and its attachments if altered, changed or 
falsified by third parties. This e-mail and its attachments have been scanned 
by Anti-Virus Software.
        >_______________________________________________
        >Bayonne-devel mailing list
        >address@hidden
        >http://lists.gnu.org/mailman/listinfo/bayonne-devel
        > 
        >
        
        
        SAMO NASLOVNIKU! / ONLY FOR THE INTENDED RECIPIENT!
        
        To elektronsko sporočilo in pripete datoteke lahko vsebujejo 
informacije zaupne narave in/ali informacije, ki so varovane s pravom in so 
namenjene samo posamezniku ali družbi, na katero so naslovljene. Kakršnakoli 
neavtorizirana uporaba  informacij, prejetih v tem elektronskem sporočilu in 
pripetih datotekah, je prepovedana.
        Če elektronsko sporočilo in pripete datoteke niso bile namenjene 
prejemniku sporočila, ali če je bilo zaradi napake v naslovniku ali pri prenosu 
sporočilo poslano drugam, prosimo, da o tem obvestite pošiljatelja, prejeto 
elektronsko sporočilo in pripete datoteke pa brez kakršnekoli predhodne uporabe 
zbrišite. Mobitel, d. d., in z njim povezane ali od njega odvisne družbe niso 
odgovorne za elektronsko sporočilo in pripete datoteke, če je to spremenjeno, 
ponarejeno ali preoblikovano s strani tretje osebe. Elektronsko sporočilo in 
pripete datoteke so bile pregledane z antivirusno programsko opremo.
        
        
        This e-mail and its attachments may contain confidential and/or 
privileged information and are intended solely for the use of the individual or 
entity to whom they are addressed. Any unauthorized use of information received 
in this email and its attachments is forbidden. If you are not the intended 
recipient, or an addressing or transmission error has misdirected this e-mail, 
please notify the sender by replying to this e-mail and delete it without any 
prior use. Neither Mobitel, d.d. nor any of its subsidiaries or affiliates 
shall be liable for the e-mail and its attachments if altered, changed or 
falsified by third parties. This e-mail and its attachments have been scanned 
by Anti-Virus Software.
        
        
        _______________________________________________
        Bayonne-devel mailing list
        address@hidden
        http://lists.gnu.org/mailman/listinfo/bayonne-devel
 
 
SAMO NASLOVNIKU! / ONLY FOR THE INTENDED RECIPIENT!
 
To elektronsko sporočilo in pripete datoteke lahko vsebujejo informacije zaupne 
narave in/ali informacije, ki so varovane s pravom in so namenjene samo 
posamezniku ali družbi, na katero so naslovljene. Kakršnakoli neavtorizirana 
uporaba  informacij, prejetih v tem elektronskem sporočilu in pripetih 
datotekah, je prepovedana. 
Če elektronsko sporočilo in pripete datoteke niso bile namenjene prejemniku 
sporočila, ali če je bilo zaradi napake v naslovniku ali pri prenosu sporočilo 
poslano drugam, prosimo, da o tem obvestite pošiljatelja, prejeto elektronsko 
sporočilo in pripete datoteke pa brez kakršnekoli predhodne uporabe zbrišite. 
Mobitel, d. d., in z njim povezane ali od njega odvisne družbe niso odgovorne 
za elektronsko sporočilo in pripete datoteke, če je to spremenjeno, ponarejeno 
ali preoblikovano s strani tretje osebe. Elektronsko sporočilo in pripete 
datoteke so bile pregledane z antivirusno programsko opremo.


This e-mail and its attachments may contain confidential and/or privileged 
information and are intended solely for the use of the individual or entity to 
whom they are addressed. Any unauthorized use of information received in this 
email and its attachments is forbidden. If you are not the intended recipient, 
or an addressing or transmission error has misdirected this e-mail, please 
notify the sender by replying to this e-mail and delete it without any prior 
use. Neither Mobitel, d.d. nor any of its subsidiaries or affiliates shall be 
liable for the e-mail and its attachments if altered, changed or falsified by 
third parties. This e-mail and its attachments have been scanned by Anti-Virus 
Software.


_______________________________________________
Bayonne-devel mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/bayonne-devel
 
 
SAMO NASLOVNIKU! / ONLY FOR THE INTENDED RECIPIENT!

To elektronsko sporočilo in pripete datoteke se sme uporabljati v skladu s 
pogoji družbe Mobitel, d. d. Glej: http://disclaimer.mobitel.si/
This e-mail and its attachments are subject to the Mobitel, d. d. disclaimer. 
See: http://disclaimer.mobitel.si/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]