Wrong 1 - All Start -> transitions are missing ‘onNewSession’!

Wrong 2 - Look like a missing timer in source: 

OfferProvidedAnswer -> Accepted      [ label = "dum::accept/send::2xx-answer,timer::2xx,timer::NoAck" ];
OfferProvidedAnswer -> Accepted      [ label = "dum::accept/send::2xx-answer,timer::2xx,app:onConnected" ];

EarlyProvidedAnswer -> Accepted      [ label = "dum::accept/send::2xx-answer,timer::2xx,timer::NoAck" ];
EarlyProvidedAnswer -> Accepted      [ label = "dum::accept/send::2xx-answer,timer::2xx,app::onConnected" ];

ProvidedOffer -> AcceptedWaitingAnswer    [ label = "dum::accept/send::2XXI-offer,timer::2xx,timer::NoAck" ];
ProvidedOffer -> AcceptedWaitingAnswer    [ label = "dum::accept/send::2XXI-offer,timer::2xx " ];

Wrong 3 – wrong transitions:

Accepted -> WaitingToHangup                  [ label = "dum::end" ];
Accepted -> Assert                           [ label = "dum::end/app::reject480" ];

WaitingToOffer -> WaitingToHangup            [ label = "dum::end" ];
WaitingToOffer -> Assert                     [ label = "dum::end/app::reject480" ];

NoOfferReliable -> FirstSentOfferReliable    [ label = "dum::provisional/send::1xx-offer,timer::1xx" ];
NoOfferReliable -> Assert                    [ label = "dum::provisional/assert" ];

WaitingToOffer -> SentUpdate                 [ label = "onACK/send::UPDATE-offer" ]; 
WaitingToOffer -> SentReinvite               [ label = "onACK/send::INVITE-offer" ]; 
WaitingToOffer -> Assert                     [ label = "onACK/provideOfferAssert" ]; 

AcceptedWaitingAnswer -> WaitingToHangup     [ label = "dum::end" ];
AcceptedWaitingAnswer -> Exception           [ label = "dum::end/app::reject480" ];

NoOfferReliable -> FirstSentOfferReliable    [ label = "dum::provisional/send::1xx-offer,timer::1xx" ];
NoOfferReliable -> Assert                    [ label = "dum::provisional/assert" ];

FirstSentOfferReliable -> WaitingToTerminate        [ label = "dum::end" ];
FirstSentOfferReliable -> Terminated                [ label = "dum::end/app::reject480" ];

FirstEarlyReliable -> WaitingToTerminate    [ label = "dum::end" ];
FirstEarlyReliable -> Terminated            [ label = "dum::end/app::reject480" ];

SentUpdateAccepted -> WaitingToHangup    [ label = "dum::end" ];
SentUpdateAccepted -> Assert             [ label = "dum::end/app::reject480" ];

ReceivedUpdateWaitingAnswer -> Accepted           [ label = "dum::provideAnswer/send::2XXU-answer,send::2XXI" ];
ReceivedUpdateWaitingAnswer -> Connected          [ label = "dum::provideAnswer/(send::2XXU-answer,send::2XXI)" ];
ReceivedUpdateWaitingAnswer -> WaitingToHangup    [ label = "dum::end" ];
ReceivedUpdateWaitingAnswer -> Assert             [ label = "dum::end/app::reject480" ];

Wrong 4 – Actions to be done for transitions () are only commented in source code

OfferReliable -> FirstEarlyReliable    [ label = "dum::provideAnswer/(send::1xx-answer,timer::1xx)" ];
ReceivedUpdate -> EarlyReliable                  [ label = "dum::provideAnswer/(send::200U-answer)" ];

Wrong 5 – Two transitions should be combined into one!

Accepted -> Terminated         [ label = "onBye/send::200B,dum::destroy" ];
Accepted -> Terminated         [ label = "onBye/app::onTerminated,send::200B" ]; 
Accepted -> Terminated         [ label = "onBye/send::200B,app::onTerminated,dum::destroy" ];

How to find in source?:

Accepted -> Accepted           [ label = "onTimer2xx/resend::2XXI" ];
Accepted -> Terminated         [ label = "onTimerNoACK/
                                app::onAckNotReceived(),app::onTerminated(GeneralFailure),send::BYE" ];
Accepted -> Accepted           [ label = "onPRACK/send::2XXP,send::2XXI,timer::2xx" ];
WaitingToOffer -> WaitingToOffer     [ label = "onTimer2xx/resend::2XXI" ];
WaitingToOffer -> Terminated         [ label = "onTimerNoACK/
                                      app::onAckNotReceived(),app::onTerminated(GeneralFailure),send::BYE" ];
EarlyOffer -> EarlyOffer             [ label = "onTimer1xx/resend::1xx" ];
EarlyNoOffer -> EarlyNoOffer          [ label = "onTimer1xx/resend::1xx" ];

AcceptedWaitingAnswer -> Terminated               [ label = "onTimer2xx/resend::2XXI" ]; // !jf! destroy?
AcceptedWaitingAnswer -> Terminated               [ label = "onTimerNoACK/send::BYE" ];

FirstSentOfferReliable -> FirstSentOfferReliable    [ label = "onTimer/resend::1xx" ];
FirstSentOfferReliable -> EarlyReliable             [ label = "onPRACK/200P,app::onAnswer" ];

FirstEarlyReliable -> FirstEarlyReliable    [ label = "onTimer/resend::1xx,timer::1xx" ];
FirstEarlyReliable -> EarlyReliable         [ label = "onPRACK/200P" ];

EarlyReliable -> EarlyReliable     [ label = "onPRACK/send::200P" ];
EarlyReliable -> EarlyReliable     [ label = "onTimer/resend::1xx" ];
EarlyReliable -> ReceivedUpdate    [ label = "onUpdate/app::onOffer" ];

SentUpdate -> EarlyReliable         [ label = "on2XXU" ];

SentUpdateAccepted -> Accepted           [ label = "on2xxU/app::onAnswer" ];
SentUpdateAccepted -> Accepted           [ label = "on4XXU/app::onOfferRejected" ];

Connected -> Connected       [ label = "onTimer/resend::2xx" ];
Connected -> Terminated      [ label = "dum::end/send::BYE" ];

WaitingToTerminate -> Terminated    [ label = "onPRACK/send::4xx,dum::destroy" ];

Missing:

Start -> Assert    [ label = "dum::redirect/assert" ];
Start -> Assert    [ label = "dum::reject/assert" ];
Start -> Assert    [ label = "dum::provisional/assert" ];
Start -> Assert    [ label = "dum::provideOffer/assert" ];
Start -> Assert    [ label = "dum::provideAnswer/assert" ];
Start -> Assert    [ label = "dum::end/assert" ];
Offer -> Terminated    [ label = "dum::redirect/sendRedirectResponse,app::onTerminated,dum::destroy" ];
Offer -> Exception     [ label = "dum::provideOffer/" ];
OfferProvideAnswer -> Terminated    [ label = "dum::redirect/sendRedirectResponse,app::onTerminated,dum::destroy" ];
OfferProvideAnswer -> Assert        [ label = "dum::provideOffer/assert" ];
OfferProvideAnswer -> Assert        [ label = "dum::provideAnswer/assert" ];
Accepted -> Assert             [ label = "dum::redirect/assert" ];
Accepted -> Assert             [ label = "dum::reject/assert" ];
Accepted -> Assert             [ label = "dum::provisional/assert" ];
Accepted -> Assert             [ label = "dum::provideAnswer/assert" ];
Accepted -> Assert             [ label = "dum::accept/assert" ];
WaitingToOffer -> Assert             [ label = "dum::redirect/assert" ];
WaitingToOffer -> Assert             [ label = "dum::reject/assert" ];
WaitingToOffer -> Assert             [ label = "dum::provisional/assert" ];
WaitingToOffer -> Assert             [ label = "dum::provideOffer/assert" ];
WaitingToOffer -> Assert             [ label = "dum::provideAnswer/assert" ];
WaitingToOffer -> Assert             [ label = "dum::accept/assert" ];
EarlyOffer -> Terminated             [ label = "dum::redirect/sendRedirectResponse,app::onTerminated,dum::destroy" ];
EarlyOffer -> Exception              [ label = " dum::provideOffer/" ];
EarlyProvidedAnswer -> Terminated    [ label = "dum::redirect/sendRedirectResponse,app::onTerminated,dum::destroy" ];
EarlyProvidedAnswer -> Assert        [ label = "dum::provisional/assert" ];
EarlyProvidedAnswer -> Assert        [ label = "dum::provideOffer/assert" ];
EarlyProvidedAnswer -> Assert        [ label = "dum::provideAnswer/assert" ];
NoOffer -> Terminated       [ label = "dum::redirect/sendRedirectResponse,app::onTerminated,dum::destroy" ];
NoOffer -> Assert           [ label = "dum::provideAnswer/assert" ];
ProvidedOffer -> Terminated               [ label = "dum::redirect/
                                           sendRedirectResponse,app::onTerminated,dum::destroy" ];
ProvidedOffer -> Assert                   [ label = "dum::provideOffer/assert" ];
ProvidedOffer -> Assert                   [ label = "dum::provideAnswer/assert" ];
EarlyProvidedOffer -> Terminated               [ label = "dum::redirect/
                                                sendRedirectResponse,app::onTerminated,dum::destroy" ];
EarlyProvidedOffer -> Assert                   [ label = "dum::provideOffer/assert" ];
EarlyProvidedOffer -> Assert                   [ label = "dum::provideAnswer/assert" ];
AcceptedWaitingAnswer -> Assert                   [ label = "dum::redirect/assert" ];
AcceptedWaitingAnswer -> Assert                   [ label = "dum::reject/assert" ];
AcceptedWaitingAnswer -> Assert                   [ label = "dum::provisional/assert" ];
AcceptedWaitingAnswer -> Assert                   [ label = "dum::accept/assert" ];
AcceptedWaitingAnswer -> Exception                [ label = "dum::provideOffer/" ];
AcceptedWaitingAnswer -> Exception                [ label = "dum::provideAnswer/" ];
OfferReliable -> Terminated            [ label = "dum::redirect/sendRedirectResponse,app::onTerminated,dum::destroy" ];
OfferReliable -> Assert                [ label = "dum::provisional/assert" ];
OfferReliable -> Assert                [ label = "dum::provideOffer/assert" ];
OfferReliable -> Assert                [ label = "dum::accept/assert" ];
NoOfferReliable -> Terminated                [ label = "dum::redirect/
                                              sendRedirectResponse,app::onTerminated,dum::destroy" ];
NoOfferReliable -> Assert                    [ label = "dum::provideAnswer/assert" ];
NoOfferReliable -> Terminated                [ label = "dum::end/app::reject480" ];
NoOfferReliable -> Assert                    [ label = "dum::accept/assert" ];
FirstSentOfferReliable -> Terminated                [ label = "dum::redirect/
                                                     sendRedirectResponse,app::onTerminated,dum::destroy" ];
FirstSentOfferReliable -> Assert                    [ label = "dum::provisional/assert" ];
FirstSentOfferReliable -> Assert                    [ label = "dum::provideOffer/assert" ];
FirstSentOfferReliable -> Assert                    [ label = "dum::provideAnswer/assert" ];
FirstSentOfferReliable -> Assert                    [ label = "dum::accept/assert" ];
FirstEarlyReliable -> Terminated            [ label = "dum::redirect/
                                             sendRedirectResponse,app::onTerminated,dum::destroy" ];
FirstEarlyReliable -> Assert                [ label = "dum::provisional/assert" ];
FirstEarlyReliable -> Assert                [ label = "dum::provideOffer/assert" ];
FirstEarlyReliable -> Assert                [ label = "dum::provideAnswer/assert" ];
EarlyReliable -> Terminated        [ label = "dum::redirect/sendRedirectResponse,app::onTerminated,dum::destroy" ];
EarlyReliable -> Assert            [ label = "dum::provideAnswer/assert" ];
SentUpdate -> Terminated            [ label = "dum::redirect/sendRedirectResponse,app::onTerminated,dum::destroy" ];
SentUpdate -> Assert                [ label = "dum::provisional/assert" ];
SentUpdate -> Assert                [ label = "dum::provideOffer/assert" ];
SentUpdate -> Assert                [ label = "dum::provideAnswer/assert" ];
SentUpdateAccepted -> Assert             [ label = "dum::redirect/assert" ];
SentUpdateAccepted -> Assert             [ label = "dum::reject/assert" ];
SentUpdateAccepted -> Assert             [ label = "dum::provisional/assert" ];
SentUpdateAccepted -> Assert             [ label = "dum::provideOffer/assert" ];
SentUpdateAccepted -> Assert             [ label = "dum::provideAnswer/assert" ];
SentUpdateAccepted -> Assert             [ label = "dum::accept/assert" ];
RecievedUpdate -> Terminated                     [ label = "dum::redirect/
                                                  sendRedirectResponse,app::onTerminated,dum::destroy" ];
RecievedUpdate -> Assert                         [ label = "dum::provisional/assert" ];
RecievedUpdate -> Assert                         [ label = "dum::provideOffer/assert" ];
RecievedUpdateWaitingAnswer -> Terminated         [ label = "dum::redirect/
                                                   sendRedirectResponse,app::onTerminated,dum::destroy" ];
RecievedUpdateWaitingAnswer -> Assert             [ label = "dum::reject/assert" ];
RecievedUpdateWaitingAnswer -> Assert             [ label = "dum::provisional/assert" ];
RecievedUpdateWaitingAnswer -> Assert             [ label = "dum::provideOffer/assert" ];
RecievedUpdateWaitingAnswer -> Assert             [ label = "dum::accept/assert" ];
Connected -> Assert          [ label = "dum::redirect/assert" ];
Connected -> Assert          [ label = "dum::reject/assert" ];
Connected -> Assert          [ label = "dum::provisional/assert" ];
Connected -> Assert          [ label = "dum::accept/assert" ];
Connected -> SentUpdate      [ label = "dum::provideOffer/send::UPDATE" ];
Connected -> SentReinvite    [ label = "dum::provideOffer/send::INVITE" ];
Connected -> Exception       [ label = "dum::provideAnswer/" ];
WaitingToTerminate -> Assert        [ label = "dum::end/app::reject480" ];
WaitingToTerminate -> Assert        [ label = "dum::redirect/assert" ];
WaitingToTerminate -> Assert        [ label = "dum::reject/assert" ];
WaitingToTerminate -> Assert        [ label = "dum::provisional/assert" ];
WaitingToTerminate -> Assert        [ label = "dum::provideOffer/assert" ];
WaitingToTerminate -> Assert        [ label = "dum::provideAnswer/assert" ];
WaitingToTerminate -> Assert        [ label = "dum::accept/assert" ];
WaitingToHangup -> Assert        [ label = "dum::redirect/assert" ];
WaitingToHangup -> Assert        [ label = "dum::reject/assert" ];
WaitingToHangup -> Assert        [ label = "dum::provisional/assert" ];
WaitingToHangup -> Assert        [ label = "dum::provideOffer/assert" ];
WaitingToHangup -> Assert        [ label = "dum::provideAnswer/assert" ];
WaitingToHangup -> Assert        [ label = "dum::accept/assert" ];